admin Опубликовано 19 марта, 2022 Поделиться Опубликовано 19 марта, 2022 В настоящее время почти каждый фреймворк имеет встроенную поддержку Composer, потрясающего инструмента управления зависимостями в PHP, и OpenCart не является исключением. Из этого руководства вы узнаете, как использовать Composer для интеграции внешних библиотек в OpenCart. Роль Composer в OpenCart После представления OpenCart 2.2 поддерживается рабочий процесс на основе Composer. Так что, идите и возьмите последнюю версию OpenCart; как написано это — 2.3.0.2. Убедитесь, что вы установили и настроили последнюю загруженную версию, так как это пригодится нам позже в этой статье. Посмотрите структуру каталогов, и вы заметите некоторые отличия от более ранних версий OpenCart. Касательно этой статьи интересными кандидатами будут файл composer.json и каталог vendor. Давайте быстренько пройдемся по файлу composer.json. { "name": "opencart/opencart", "type": "project", "description": "OpenCart", "keywords": ["opencart", "ecommerce", "framework", "opensource"], "homepage": "https://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, не загружая его с сайта вручную. Кроме того, также требуется, чтобы другие сторонние библиотеки работали должным образом, такие как divo, 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 package information 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 lock file Generating autoload files Вот и всё! PHPMailer успешно загружен и установлен, в этом и есть вся прелесть Composer! Убедитесь, что заглянув в каталог vendor, вы найдете его установленным в каталог phpmailer/phpmailer. Также, давайте откроем 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", "phpmailer/phpmailer": "^5.2" } } Как видите, запись "phpmailer/phpmailer": "^5.2" добавлена в раздел require. Это означает, что для правильной работы вашему проекту нужeн PHPMailer Давайте предположим, что вы работаете с другими разработчиками и вам нужно регулярно делиться вашей работой. В этом случае, вам нужно передать только ваш файл composer.json, а обо всём остальном позаботиться Composer! Им потребуется только выполнить команду composer update, это обеспечит установку требуемых зависимостей в их копии! Ну вот, мы установили PHPMailer используя Composer, но как его использовать? Не беспокойтесь, я не оставлю вас так быстро — это точный рецепт нашего следующего раздела! Как использовать библиотеку PHPMailer? Вы уже сделали себе одолжение, использовав Composer для установки библиотеки PHPMailer, и вы будете свидетелем того, как в этом разделе мы рассмотрим то, насколько просто его использовать в примерах кода. В целях примера, мы создадим довольно простой файл с пользовательским контроллером, который вы можете вызывать для отправки email. Откройте ваш любимый текстовый редактор и создайте example/email.php внутри каталога catalog/controller со следующим содержимым. <?php class ControllerExampleEmail extends Controller { public function index() { // just instantiate the mailer object, no need to include anything to use it. $objPhpMailer = new PHPMailer(); $objPhpMailer->From = "sender@example.com"; $objPhpMailer->FromName = "Sajal Soni"; $objPhpMailer->AddAddress("receiver@example.com"); $objPhpMailer->WordWrap = 50; $objPhpMailer->IsHTML(true); $objPhpMailer->Subject = "Subject"; $objPhpMailer->Body = "<h2>HTML Body</h2>"; $objPhpMailer->AltBody = "Plain Body"; if(!$objPhpMailer->Send()) { echo "Message could not be sent. <p>"; echo "Mailer Error: " . $objPhpMailer->ErrorInfo; exit; } echo "Message has been sent"; exit; } } В методе index, вы видите, что мы создали экземпляр объекта PHPMailer без каких-либо указаний include, которые должны были включить требуемый класс PHPMailer, если бы мы не использовали рабочий процесс на основе Composer. Вы все поняли правильно, OpenCart Напомним, что autoload.php в каталоге vendor осуществляет всю эту магию! Вследствие этого есть некая довольно стандартная вещь, требуемая PHPMailer для отправки email. Конечно, я пытался сделать пример настолько просто насколько возможно, так как для обсуждения PHPMailer потребуется отдельная статья. Так что, это было быстрое и простое введение в то, как вы можете использовать Composer с OpenCart для интеграции со сторонними библиотеками. Выводы В этой статье мы только вскарабкались на поверхность рабочего процесса на основе Composer в OpenCart, чтобы использовать сторонние библиотеки в вашем проекте. Не говоря уже о том, что Composer — это будущее инструментов управления зависимостями в PHP. Поэтому всегда хорошо запачкать в этом ваши руки, поскольку это становится стандартом во всех популярных фреймворках. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.