我刚刚在probject文件夹中包含了phpmailer通过composer运行以下命令:composer require phpmailer/phpmailer
文件夹内:application/assets/
我在索引.php文件中包含了以下命令:
include 'application/assets/vendor/autoload.php';
但不幸的是,我收到此错误:
警告:include(application/assets/vendor/autoload.php):无法打开流:第 74 行的/var/www/html/projects/MyApp/index.php 中没有这样的文件或目录
这是我的应用程序的树视图:
>MyApp
>application
>assets
>vendor
>autoload.php
>system
>index.php
在我composer
和phpmailer
文件夹的vendor
文件夹中,如果我手动包含 phpmailer 类,我不会收到任何错误,这只有在我包含作曲家自动加载时才会发生。
这是autoload.php
的内容:
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInit13c998efcdd189d437d19150f7ef3bc9::getLoader();
我不确定子文件夹/application/assets/
中的安装是否是必须的,但我建议使用标准文件夹布局:
步骤1在index.php
旁边创建一个composer.json
- MyApp
- application
- system
- index.php
- composer.json
然后将phpmailer/phpmailer
添加到此composer.json
文件的 require 部分中:
{
"require": {
"phpmailer/phpmailer": "^5.2"
}
}
然后运行composer update
.
(或者,您也可以在MyApp
文件夹中运行composer require phpmailer/phpmailer
。它将自动生成composer.json
文件)
依赖项将被提取到文件夹中:vendors
,这意味着您的文件夹结构现在如下所示:
MyApp
application
system
vendor <-- new folder with composer autoloaders and dependencies
index.php
composer.json
步骤2最后,将作曲家自动加载器添加到您的index.php
require __DIR__ . '/vendor/autoload.php';
就是这样。。。开始使用依赖项:$mail = new PHPMailer;
引用:
- https://github.com/PHPMailer/PHPMailer#installation--loading
- https://getcomposer.org/doc/01-basic-usage.md