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

Я новичок в 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 from github: https://github.com/PHPMailer/PHPMailer

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

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

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

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

composer require phpmailer/phpmailer

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

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