我正在尝试实例化我使用composer安装的PHP邮件程序类。该类位于vendor \ phpmailer \ phpmailer \ class.phpmailer.php
中-Project
-src
-SmtpHandler.php
-vendor
-phpmailer
-phpmailer
class.phpmailer.php
index.php
我正在尝试在SmtpHandler中加载此类,如下所示:
<?php
namespace Fusion;
require_once __DIR__ . '/../vendor/autoload.php';
class SmtpHandler {
var $mail;
function __construct () {
$this->mail = new PHPMailer;
我的composer.json文件像我这样自动加载我的php类:
"autoload": {
"psr-4": {
"Fusion\\": "src"
}
},
当$ this-&gt; mail = new PHPMailer;被叫,我收到错误致命错误:第8行/var/www/proj/Project/src/SmtpHandler.php中找不到类'Fusion \ PHPMailer'
我需要使用vendor \ phpmailer \ phpmailer \ class.phpmailer吗?或者我使用psr-4错了吗?
由于
答案 0 :(得分:7)
在命名空间(namespace Fusion;
)添加后添加
use PHPMailer as PHPMailer;
或在实施时,执行以下操作:new \PHPMailer;// instanciate from outside the current namespace
这是因为php试图从你当前的命名空间中实现Fusion\PHPMailer
。