PHP - 在自定义 Class 中使用 PHPMailer
PHP - Use PHPMailer in Custom Class
我正在尝试在 class 中使用 PHPMail,但在下面指示的行中出现错误。
有人能看出原因吗?
class SendMail {
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
public function __construct()
{
$this->debug();
$this->includes();
}
public function send_mail()
{
$mail = new PHPMailer(true); // ERROR
}
private function includes()
{
require __DIR__ . '/../config.php';
require '/var/composer/phpmailer/vendor/autoload.php';
}
private function debug()
{
ini_set('display_errors', 0); // 0 = Only Warnings, 1 = All Notifications
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
}
我试过将“新”声明移到构造函数中,但这没有任何区别。
我收到 500 错误并且 VSCode 调试器显示:
您滥用了 Traits .
我认为PHPMailer
不是特质。
您需要将其用作命名空间而不是特征。
<?php
namespace \XYZ;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
class SendMail {
// ....
}
请注意,您需要使用自动加载器。
最终工作代码:
<?php
use PHPMailer\PHPMailer\PHPMailer;
class SendMail
{
public function __construct()
{
$this->debug();
$this->includes();
}
public function send_mail()
{
$mail = new PHPMailer(true);
echo 'Hello World';
}
private function includes()
{
require __DIR__ . '/../config.php';
require '/var/composer/phpmailer/vendor/autoload.php';
}
private function debug()
{
ini_set('display_errors', 0); // 0 = Only Warnings, 1 = All Notifications
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
}
我正在尝试在 class 中使用 PHPMail,但在下面指示的行中出现错误。
有人能看出原因吗?
class SendMail {
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
public function __construct()
{
$this->debug();
$this->includes();
}
public function send_mail()
{
$mail = new PHPMailer(true); // ERROR
}
private function includes()
{
require __DIR__ . '/../config.php';
require '/var/composer/phpmailer/vendor/autoload.php';
}
private function debug()
{
ini_set('display_errors', 0); // 0 = Only Warnings, 1 = All Notifications
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
}
我试过将“新”声明移到构造函数中,但这没有任何区别。
我收到 500 错误并且 VSCode 调试器显示:
您滥用了 Traits .
我认为PHPMailer
不是特质。
您需要将其用作命名空间而不是特征。
<?php
namespace \XYZ;
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
class SendMail {
// ....
}
请注意,您需要使用自动加载器。
最终工作代码:
<?php
use PHPMailer\PHPMailer\PHPMailer;
class SendMail
{
public function __construct()
{
$this->debug();
$this->includes();
}
public function send_mail()
{
$mail = new PHPMailer(true);
echo 'Hello World';
}
private function includes()
{
require __DIR__ . '/../config.php';
require '/var/composer/phpmailer/vendor/autoload.php';
}
private function debug()
{
ini_set('display_errors', 0); // 0 = Only Warnings, 1 = All Notifications
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
}
}