Інтеграція зовнішніх бібліотек в OpenCart через Composer

18

Від автора: сьогодні Composer вбудований майже у всі фреймворки. Composer – дивовижний інструмент управління залежностями в PHP. OpenCart в цьому плані не виняток. У цьому уроці ви дізнаєтеся, як інтегрувати зовнішні бібліотеки з допомогою Composer OpenCart.

Роль Composer в OpenCart

В OpenCart Composer підтримується з версії 2.2. Скачайте останню версію. На момент написання статті це 2.3.0.2. Встановіть та налаштуйте останню версію, трохи пізніше вона нам знадобиться.

Погляньте на структуру папок, і ви помітите відмінності порівняно з попередніми версіями OpenCart. В рамках статті нас цікавлять composer.json і папка vendor.

Розберемо файл composer.json.

{
«name»: «opencart/opencart»,
«type»: «project»,
«description»: «OpenCart»,
«keywords»: [«opencart», «ecommerce», «framework», «opensource»],
«homepage»: «http://www.opencart.com»,
«license»: «GPL-3.0+»,
«require»: {
«cardinity/cardinity-sdk-php»: «^1.0»,
«braintree/braintree_php» : «3.2.0»,
«leafo/scssphp»: «0.0.12»,
«divido/divido-php»: «>=1.1.1»,
«klarna/kco_rest»: «^2.2»,
«php»: «>=5.4.0»
}
}

Синтаксис Composer не входить в нашу статтю, але давайте швидко пробіжимося очима не спеціаліста.

Інтеграція зовнішніх бібліотек в OpenCart через Composer

Інтернет-магазин на OpenCart!

Створити інтернет-магазин на самій популярної CMS OpenCart з нуля!

Приступити до створення

По-перше, сам проект OpenCart тепер доступний як бібліотека, тобто її можна встановити через Composer, не завантажуючи нічого вручну з сайту. По-друге, бібліотеці потрібні інші сторонні бібліотеки для коректної роботи (divido, leafo тощо). Вам не потрібно думати про це, все скочується автоматично після запуску відповідних команд Composer.

Після установки нової бібліотеки в файлі composer.json з’явиться відповідний запис. Файли бібліотеки завантажуються в папку vendor на тому ж рівні. Відкрийте папку, там ви побачите вже встановлені бібліотеки!

Папка vendor також містить файл autoload.php – файл генерується Composer і перевіряє автоматичне завантаження бібліотек в OpenCart. Можете відразу його використовувати. При завантаженні проекту включає OpenCart autoload.php.

Це був побіжний огляд роботи Composer в OpenCart. Для демонстрації ми встановимо популярну бібліотеку PHPMailer через Composer.

Установка PHPMailer через Composer

PHPMailer – популярна PHP бібліотека для відправки листів на електронну пошту. Ми встановимо її в OpenCart через Composer. Відкрийте термінал і змінити директорію на ту, де папка vendor і файл composer.json лежать на одному рівні.

Запустіть команду composer require phpmailer/phpmailer і натисніть enter! Якщо все піде добре, ви побачите приблизно наступне.

$composer require phpmailer/phpmailer
Using version ^5.2 for phpmailer/phpmailer
./composer.json has been updated
Loading composer repositories with information package
Updating dependencies (including require-dev)
— Installing phpmailer/phpmailer (v5.2.16)
Downloading: 100%
phpmailer/phpmailer suggests installing league/oauth2-google (Needed for Google XOAUTH2 authentication)
Writing file lock
Generating autoload files

Всі! PHPMailer успішно завантажено і встановлено. Ось у чому сила Composer! Можете перевірити, відкрийте папку vendor, бібліотека буде встановлена в папку phpmailer/phpmailer.

Відкриємо файл composer.json.

Інтеграція зовнішніх бібліотек в OpenCart через Composer

Інтернет-магазин на OpenCart!

Створити інтернет-магазин на самій популярної CMS OpenCart з нуля!

Приступити до створення

{
«name»: «opencart/opencart»,
«type»: «project»,
«description»: «OpenCart»,
«keywords»: [«opencart», «ecommerce», «framework», «opensource»],
«homepage»: «http://www.opencart.com»,
«license»: «GPL-3.0+»,
«require»: {
«cardinity/cardinity-sdk-php»: «^1.0»,
«braintree/braintree_php» : «3.2.0»,
«leafo/scssphp»: «0.0.12»,
«divido/divido-php»: «>=1.1.1»,
«klarna/kco_rest»: «^2.2»,
«php»: «>=5.4.0»,
«phpmailer/phpmailer»: «^5.2»
}
}

Як бачите, в розділ require додано рядок «phpmailer/phpmailer»: «^5.2». Це означає, що для роботи вашого проекту потрібен PHPMailer.

Припустимо, що ви працюєте з іншими розробниками, і вам необхідно кожен день ділитися роботою. Для цього вам лише потрібно ділити файл composer.json, все інше візьме на себе Composer! Іншим розробникам потрібно лише запустити команду composer update. Команда встановить необхідні залежності в їх копії!

Ми встановили PHPMailer через Composer, але як її використовувати? Не турбуйтеся, я і тут вам допоможу. Цим ми займемося в наступному розділі!

Як використовувати бібліотеку PHPMailer

Ви вже зробили собі послугу, встановивши PHPMailer через Composer. Нижче ви побачите, як легко використовувати цю бібліотеку в коді.

Для прикладу ми створимо досить простий кастомный контролер, який ви будете викликати для відправки повідомлень.

Відкрийте текстовий редактор і створіть example/email.php у папці catalog/controller з наступним кодом.

From = «[email protected]»;
$objPhpMailer->FromName = «Sajal Soni»;
$objPhpMailer->AddAddress(«[email protected]»);
$objPhpMailer->WordWrap = 50;
$objPhpMailer->IsHTML(true);
$objPhpMailer->Subject = «Subject»;
$objPhpMailer->Body = «

HTML Body

«;
$objPhpMailer->AltBody = «Plain Body»;
if(!$objPhpMailer->Send())
{
echo «Message could not be sent.

«;
echo «Mailer Error:» . $objPhpMailer->ErrorInfo;
exit;
}
echo «Message has been sent»;
exit;
}
}

Можете протестувати, для цього перейдіть на своєму сайті сторінку http://your-opencart-site-url/index.php?route=example/email.

У методі index ми створили об’єкт PHPMailer без будь-яких include, які підключили б необхідні класи PHPMailer, якби ми не використали Composer. Ви правильно зрозуміли, OpenCart автоматично завантажує їх. Згадайте файл autoload.php у папці vendor, саме він робить всю магію!

Далі йдуть стандартні речі, необхідні для надсилання листа через PHPMailer. Я намагався не ускладнювати приклад, так як для обговорення PHPMailer потрібна окрема стаття!

Це було швидке і просте знайомство з Composer в OpenCart, а також з тим, що з його допомогою можна інтегрувати зовнішні бібліотеки.

Висновок

У цій статті ми лише привідкрили завісу Composer в OpenCart, і як з його допомогою використовувати сторонні бібліотеки у проекті. Безперечно, Composer – майбутнє інструментів управління залежностями в PHP. Про це інструменті необхідно знати, так як він стає стандартом у всіх популярних фреймворках.

Інтеграція зовнішніх бібліотек в OpenCart через Composer

Інтернет-магазин на OpenCart!

Створити інтернет-магазин на самій популярної CMS OpenCart з нуля!

Приступити до створення