我正在尝试实例化我使用 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


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!