我让PHPMailer在本地环境中处理我的代码,但当我将其移动到服务器时,我会得到以下错误
Class 'PHPMailerPHPMailerPHPMailer' not found
这是我使用的代码位:
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
class Email extends EV_DB {
function __construct() {
parent::__construct();
$this->email_common = [
'baseurl' => $_SERVER['HTTP_HOST']
];
$this->stache = new Mustache_Engine(array(
'loader' => new Mustache_Loader_FilesystemLoader( __DIR__ .'/../../mustache'),
'partials_loader' => new Mustache_Loader_FilesystemLoader( __DIR__ .'/../../mustache/partial')
));
$mail = new PHPMailer(true);
...
我用composer安装了PHPMailer,并将我的codeigniter设置为自动加载到配置文件中,这就是为什么不需要autoload.php的原因。我确信这是正确的,因为胡子加载很好,如果我尝试手动包括autload文件,它会给我错误:
Cannot declare class ComposerAutoloaderInitb315d7432979fc7d6789bb454c858180, because the name is already in use.
本地环境和实时环境的区别在于,我的应用程序文件夹与index.php所在的位置是分开的。因此,在index.php中,我设置了:
$application_folder = 'C:inetpubmy_applicationapplication';
而索引文件位于中
C:inetpubwwwrootMyApplicationindex.php
此位置更改是否会更改命名空间的设置?我真的没有足够的知识来解决这个问题。
最终通过composer重新安装PHPMailer成功了。我想在安装过程中出了问题。哇。