如何将PHPMailer导入到使用命名空间的类中?

时间:2015-06-25 22:16:40

标签: php namespaces phpmailer

我有以下项目文件夹和文件:(请注意,我想将我的类与库分开(例如PHPMailer,HTMLPurifier等))

enter image description here

在我的Register.php文件中,我有注册类:

namespace Classes\Register;

class Register
{
    public function register()
    {
        // ...
        $m = new PHPMailer;
        // send email
    }
}

因此,在我的Register类(位于classes /目录中)中,我想使用PHPMailer类(位于上面的一个目录,相对于Register.php文件,进入libs / PHPMailer)。如何将PHPMailer类包含在Register.php文件中?

我试过了:

 $m = new \PHPMailer; // to use the class from the global scope, but it doesn't work.

或者,如果我包含PHPMailerAutoload.php,就像这样:

namespace Classes\Register;

require '../libs/PHPMailer/PHPMailerAutoload.php';

// and then into register() method:
$m = new PHPMailer;

我收到错误消息:Fatal error: Class 'Classes\Register\PHPMailer' not found

有什么想法吗?非常感谢!

1 个答案:

答案 0 :(得分:6)

你没有理由说这不起作用,因为它是正确的:

 $m = new \PHPMailer;

或者,您可以将类导入您自己的命名空间:

use PHPMailer;

$m = new PHPMailer;

关于班级名称,它基本相同。

如果两个版本都不起作用,则会遇到其他问题。