类别';PHPMailer\PHPMailer\PHPMailer';在中找不到
我用的是Composer,但我试过的都没用 我试着要求作曲家自动加载类别';PHPMailer\PHPMailer\PHPMailer';在中找不到,php,composer-php,phpmailer,require,Php,Composer Php,Phpmailer,Require,我用的是Composer,但我试过的都没用 我试着要求作曲家自动加载 require BASE_URL.'assets/vendor/autoload.php'; 并使用名称空间 use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; 但我仍然收到一条错误消息 致命错误:在中找不到类“PHPMailer\PHPMailer\PHPMailer” 这是我的简化课程 use PHPMailer\PHPMailer
require BASE_URL.'assets/vendor/autoload.php';
并使用名称空间
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
但我仍然收到一条错误消息
致命错误:在中找不到类“PHPMailer\PHPMailer\PHPMailer”
这是我的简化课程
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/phpmailer/src/Exception.php';
require 'vendor/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/src/SMTP.php';
class Email extends model{
public function enviarContato($nome, $email, $mensagem){
$mail = new PHPMailer(true);
}
}
我相信我输入的是错误的,所以这里是我的路径结构
我正在使用Email.php
谢谢
基本URL包含http://192.168.1.240/project/
如果您使用URL提供require
,整个调用将通过web服务器进行,因此您将获得代码执行的结果,而不是代码本身。您需要文件系统路径,例如:
require __DIR__ . '/path/to/autoload.php';
您是否尝试过在不使用composer的情况下包含PHP Mailer?为什么所有这些composer内容都位于类似于公用文件夹的位置(即使它是命名资产)?它应该在您的项目根目录中。@JonStirling我应该用资产安装吗?我对
BASE\u URL
常量感到困惑。它真的包含URL吗?require
调用无法工作,除非您为其提供文件系统路径。@OtavioSouzaRocha它不应该包含URL,它应该包含指向项目根目录的文件路径,而且我认为供应商不在资产目录中。我必须使用:require dirname(dirname(file))。\vendor\phpmailer\phpmailer\src\Exception.php';但是效果很好,谢谢!呃。。。您需要使用Composer的autoload.php
。工作正常<代码>需要dirname(dirname(_文件__))。\vendor\autoload.php'代码>或<代码>需要_DIR.'//供应商/autoload.php'代码>(应该是一样的)。我刚刚遇到了这个问题,这确实也是我的问题,谢谢!你可以进一步解释一下,或者告诉我在哪里可以找到相关的资源?虽然我用PHP编写代码已经有一段时间了,但这似乎是我缺乏的基础知识。。