无法在zend框架2中包含PHPMailer

时间:2015-07-16 14:14:43

标签: php zend-framework zend-framework2 phpmailer

我们有使用PHPMailer发送邮件的代码,方法是将PHPMailerAutoload.php文件包含在我们的php文件中,例如..

require "PHPMailerAutoload.php"; 

然后

$mail = new PHPMailer;

但这种语法在zend framework2文件中是不可接受的,它表示为"致命错误" "未找到班级"。 我试图将PHPMailer移动到zf2&库的库文件夹中然后通过使用Lib\PHPMailer\PHPMailerAutoload来包含它们,这是包含任何库文件的zf2标准方式, 但即使这样也行不通。

有没有人这样做,请帮帮我

在zend框架2中没有Lib文件夹,但是我已经添加到供应商&用它作为

enter image description here

use Lib\folder\file;

哪个真的有效,也会出现错误......就是。,

<br />
<b>Fatal error</b>:  Class 'Lib\PHPMailer\PHPMailerAutoload' not found in 
<b>/var/www/html/sample.php</b> on line 
<b>503</b>
<br />

1 个答案:

答案 0 :(得分:3)

vendor/中添加或编辑内容并不是一个好主意 - 让Composer管理此文件夹。根据我的评论,我建议您使用composer安装PHPMailer,只需添加:

"phpmailer/phpmailer": "~5.2",

composer.json的'require'部分,然后运行composer install。这也是PHPMailer's README中建议的安装方法。

您添加到问题中的错误与PHP无法找到自动加载包含文件有关。如果切换到Composer,根本不需要此文件,因此您只需删除需求行。

可能要实例化您需要使用的类:

$mail = new \PHPMailer;

(注意反斜杠),因为ZF2类通常在开头声明一个名称空间。反斜杠告诉PHP它应该从全局命名空间中获取PHPMailer类。