Как проще всего использовать внешнюю php-библиотеку в пользовательском модуле magento 2?

Я новичок в magento. В настоящее время я работаю над пользовательским модулем для magento2 и хочу использовать внешнюю php-библиотеку (PHPMailer) в файле блоков.

структура файлов моего проекта:

ModuleFolder
—так далее
.
.
—блок
——- main.php
—Lib
——- PHPMailer
.
.

Я попытался включить класс PHPMailer в мой блок main.php, используя:

require_once(__DIR__."/../lib/PHPMailer/src/PHPMailer.php");

и для объявления класса я использовал:

$mail = new PHPMailer();

также я попытался включить библиотеку PHPMailer в папку блокировки, и ничего не работает

всегда возвращается:

PHPMailer class is not found in /...../Block/Main.php

И когда я попытался поместить PHPMailer.php прямо в папку «Блок», вот так:

—блок
——main.php
——PHPMailer.php

и включены

require_once(__DIR__."/PHPMailer.php");

он возвращает: не может объявить класс PHPMailer в Main.php, потому что имя уже используется в PHPMailer.php

Я установил последнюю версию PHPMailer с github: https://github.com/PHPMailer/PHPMailer

И я решил использовать его, потому что это так просто и понятно.

Итак, как я могу использовать эту библиотеку и каков наилучший способ для этого?

Спасибо!

0

Решение

Magento 2 построен с Композитор как гражданин первого класса. Вы также должны использовать Composer для установки PHPMailer: https://github.com/PHPMailer/PHPMailer#installation—loading

composer require phpmailer/phpmailer

Это означает, что автозагрузка класса PHPMailer позаботилась о Composer, и вы можете сразу же использовать его в своем коде проекта:

$mail = new \PHPMailer\PHPMailer\PHPMailer();
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector