Я новичок в 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
И я решил использовать его, потому что это так просто и понятно.
Итак, как я могу использовать эту библиотеку и каков наилучший способ для этого?
Спасибо!
Magento 2 построен с Композитор как гражданин первого класса. Вы также должны использовать Composer для установки PHPMailer: https://github.com/PHPMailer/PHPMailer#installation—loading
composer require phpmailer/phpmailer
Это означает, что автозагрузка класса PHPMailer позаботилась о Composer, и вы можете сразу же использовать его в своем коде проекта:
$mail = new \PHPMailer\PHPMailer\PHPMailer();
Других решений пока нет …