如何将 PHPMailer 导入到使用命名空间的 class 中?
How to import PHPMailer into a class which uses namespace?
我有以下项目文件夹和文件:(请注意,我想将我的 classes 与库(如 PHPMailer、HTMLPurifier 等)分开)
在我的 Register.php 文件中,我有寄存器 class:
namespace Classes\Register;
class Register
{
public function register()
{
// ...
$m = new PHPMailer;
// send email
}
}
所以,在我的寄存器 class(位于 classes/ 目录)中,我想使用 PHPMailer class(位于上面一个目录,相对于 Register.php 文件,进入 libs/PHPMailer)。如何将 PHPMailer class 包含到 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
有什么想法吗?非常感谢!
你没有给出为什么这不起作用,因为它是正确的:
$m = new \PHPMailer;
或者您可以将 class 导入您自己的命名空间:
use PHPMailer;
$m = new PHPMailer;
class名字基本相同
如果两个版本都不起作用,则说明您遇到了不同的问题。
我有以下项目文件夹和文件:(请注意,我想将我的 classes 与库(如 PHPMailer、HTMLPurifier 等)分开)
在我的 Register.php 文件中,我有寄存器 class:
namespace Classes\Register;
class Register
{
public function register()
{
// ...
$m = new PHPMailer;
// send email
}
}
所以,在我的寄存器 class(位于 classes/ 目录)中,我想使用 PHPMailer class(位于上面一个目录,相对于 Register.php 文件,进入 libs/PHPMailer)。如何将 PHPMailer class 包含到 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
有什么想法吗?非常感谢!
你没有给出为什么这不起作用,因为它是正确的:
$m = new \PHPMailer;
或者您可以将 class 导入您自己的命名空间:
use PHPMailer;
$m = new PHPMailer;
class名字基本相同
如果两个版本都不起作用,则说明您遇到了不同的问题。