2

我正在尝试实例化我使用 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; 被调用,我收到一个错误致命错误:第 8 行的 /var/www/proj/Project/src/SmtpHandler.php 中找不到类 'Fusion\PHPMailer'

我需要使用 vendor\phpmailer\phpmailer\class.phpmailer 吗?还是我使用 psr-4 错了?

谢谢

4

1 回答 1

7

在命名空间(namespace Fusion;)之后添加 use PHPMailer as PHPMailer; 或在实例化时执行以下操作:new \PHPMailer;// instanciate from outside the current namespace

这是因为 php 试图Fusion\PHPMailer从您当前的命名空间中实例化。

于 2015-12-30T18:02:28.753 回答