我们有使用PHPMailer
发送邮件的代码,方法是将PHPMailerAutoload.php
文件包含在我们的php文件中,例如..
require "PHPMailerAutoload.php";
然后
$mail = new PHPMailer;
但这种语法在zend framework2文件中是不可接受的,它表示为"致命错误" "未找到班级"。
我试图将PHPMailer
移动到zf2&库的库文件夹中然后通过使用Lib\PHPMailer\PHPMailerAutoload
来包含它们,这是包含任何库文件的zf2标准方式,
但即使这样也行不通。
有没有人这样做,请帮帮我
在zend框架2中没有Lib文件夹,但是我已经添加到供应商&用它作为
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 />
答案 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类。