在自定义 magento 2 模块中使用外部 php 库的最简单方法是什么?

What is the simplest way to use an external php library in a custom magento 2 module?

我是 magento 的新手,我目前正在为 magento2 开发自定义模块,我想在块文件中使用外部 php 库 (PHPMailer)。

我的项目文件结构:

模块文件夹
---等等
.
.
---块
------ Main.php
---库
-------- PHPMailer
.
.

我试图在我的块 main.php 中包含 PHPMailer class 使用:

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

对于 class 我使用的声明:

$mail = new PHPMailer();

我还尝试将 PHPMailer 库包含在 Block 文件夹中,但没有任何效果

它总是 returns :

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

当我尝试将 PHPMailer.php 直接放入 Block 文件夹时,如下所示:

---阻止
-----Main.php
-----PHPMailer.php

并包括

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

it returns: 无法在 Main.php 中声明 PHPMailer class 因为该名称已在 PHPMailer.php

中使用

我从 github 安装了最新版本的 PHPMailer:https://github.com/PHPMailer/PHPMailer

我决定使用它,因为它非常简单明了。

那么我该如何使用这个库,最好的方法是什么?

谢谢!

Magento 2 使用 Composer as a first class citizen. You should use Composer to install PHPMailer as well: https://github.com/PHPMailer/PHPMailer#installation--loading

构建
composer require phpmailer/phpmailer

这意味着 PHPMailer class 自动加载由 Composer 负责,您可以立即在项目代码中使用它:

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