Перейти к содержанию
  • В связи с блокировкой банка QIWI оплата через сайт не возможна.
    Для оплаты и получения дополнений просьба писать в личные сообщения
    Admin*у
    После оплаты Вам так же будет доступно скачивание дополнений и обновлений на данном форуме

Интеграция внешних библиотек в OpenCart с помощью Composer


Рекомендуемые сообщения

В настоящее время почти каждый фреймворк имеет встроенную поддержку 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. Поэтому всегда хорошо запачкать в этом ваши руки, поскольку это становится стандартом во всех популярных фреймворках.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...