我如何使用composer包含phpmailer 5.2?

时间:2015-12-30 17:58:44

标签: php phpmailer autoload psr-4

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

由于

1 个答案:

答案 0 :(得分:7)

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

这是因为php试图从你当前的命名空间中实现Fusion\PHPMailer