Composer 不需要自动加载 类
Composer not auto-loading required classes
我是 Composer 的新手,我真的很难用 Composer 自动加载我的 类。在接下来的过程中我错过了什么?
我在我的 PHP includes 文件夹中安装了这个包(在文档根目录之外 - 我不确定这是否重要),如下所示:
composer require monolog\monolog
它说它成功完成,我确认该项目已添加到我的供应商文件夹中。
我的整个 composer.json 文件如下所示:
{
"require": {
"monolog/monolog": "^1.22"
}
}
我的整个测试文件如下所示:
<?php
require_once "vendor/autoload.php";
use Monolog\Logger;
$log = new Logger("name");
?>
加载页面时出现此错误:
Fatal error: Uncaught Error: Class 'Monolog\Logger' not found in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php:6 Stack trace: #0 {main} thrown in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php on line 6
它包含 vendor/autoload.php 文件,没有任何错误。
我已经尝试 运行 composer 中的这些命令而不做任何更改:
composer update
composer dump-autoload -0
我也用不同的包尝试过,我得到了同样的错误,所以我很确定它与 monolog 包无关。
这里有我遗漏的步骤吗?如果我在 composer 中需要它们,我不需要手动定义要在 json 文件中自动加载的 类,对吗?
编辑 1:
根据要求,这是我的不同文件的路径。
测试页路径:
C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php
composer.json 文件的路径(在文档根目录之外,但在我的包含路径中):
C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\composer.json
我的供应商文件夹在这里:
C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\vendor\
在我的供应商文件夹中,我有这些文件夹和文件:
bin/
composer/
monolog/
psr/
autoload.php
您需要在 qbtest.php
中包含自动加载,如下所示:
require_once "../wwwincludes/vendor/autoload.php";
use Monolog\Logger;
$log = new Logger("name");
我是 Composer 的新手,我真的很难用 Composer 自动加载我的 类。在接下来的过程中我错过了什么?
我在我的 PHP includes 文件夹中安装了这个包(在文档根目录之外 - 我不确定这是否重要),如下所示:
composer require monolog\monolog
它说它成功完成,我确认该项目已添加到我的供应商文件夹中。
我的整个 composer.json 文件如下所示:
{
"require": {
"monolog/monolog": "^1.22"
}
}
我的整个测试文件如下所示:
<?php
require_once "vendor/autoload.php";
use Monolog\Logger;
$log = new Logger("name");
?>
加载页面时出现此错误:
Fatal error: Uncaught Error: Class 'Monolog\Logger' not found in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php:6 Stack trace: #0 {main} thrown in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php on line 6
它包含 vendor/autoload.php 文件,没有任何错误。
我已经尝试 运行 composer 中的这些命令而不做任何更改:
composer update
composer dump-autoload -0
我也用不同的包尝试过,我得到了同样的错误,所以我很确定它与 monolog 包无关。
这里有我遗漏的步骤吗?如果我在 composer 中需要它们,我不需要手动定义要在 json 文件中自动加载的 类,对吗?
编辑 1:
根据要求,这是我的不同文件的路径。
测试页路径:
C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php
composer.json 文件的路径(在文档根目录之外,但在我的包含路径中):
C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\composer.json
我的供应商文件夹在这里:
C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\vendor\
在我的供应商文件夹中,我有这些文件夹和文件:
bin/
composer/
monolog/
psr/
autoload.php
您需要在 qbtest.php
中包含自动加载,如下所示:
require_once "../wwwincludes/vendor/autoload.php";
use Monolog\Logger;
$log = new Logger("name");