我正在尝试实例化我使用 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->mail = new PHPMailer;被调用时,我收到错误 fatal error :在第 8 行的/var/www/proj/Project/src/SmtpHandler.php 中找不到类 'Fusion\PHPMailer'
我需要使用 vendor\phpmailer\phpmailer\class.phpmailer 吗?还是我用错了 psr-4?
谢谢
请您参考如下方法:
在命名空间后添加(namespace Fusion;
) 添加 将 PHPMailer 用作 PHPMailer;
或者在实例化时执行以下操作:new\PHPMailer;//从当前命名空间之外实例化
这是因为 php 试图从您当前的命名空间实例化 Fusion\PHPMailer
。