使用 Composer 自动加载 PSR-4
PSR-4 autoloading with Composer
我运行一个带有作曲家自动加载的门户class系统:
"autoload": {
"psr-4": {
"Portal\": "src/"
}
}
它在我 运行 composer.phar dump -o
时起作用,例如我的 class Boostrap 被很好地引用到 vendor/composer/autoload_classmap.php
文件中:
'Portal\Core\Bootstrap' => $baseDir . '/src/core/Bootstrap.php',
但是当我不运行自动加载转储的优化选项时,自动加载系统不再工作:
Fatal error: Class 'Portal\Core\Bootstrap' not found in /var/www/portail/prod/web/index.php on line 7
如何在没有 -o
选项的情况下进行自动加载?
有两种修复方法。
将composer.json
更改为
"Portal\Core\": "src/core/"
或将core
目录重命名为Core
https://getcomposer.org/doc/04-schema.md#psr-4
The subdirectory name MUST match the case of the sub-namespace names.
我运行一个带有作曲家自动加载的门户class系统:
"autoload": {
"psr-4": {
"Portal\": "src/"
}
}
它在我 运行 composer.phar dump -o
时起作用,例如我的 class Boostrap 被很好地引用到 vendor/composer/autoload_classmap.php
文件中:
'Portal\Core\Bootstrap' => $baseDir . '/src/core/Bootstrap.php',
但是当我不运行自动加载转储的优化选项时,自动加载系统不再工作:
Fatal error: Class 'Portal\Core\Bootstrap' not found in /var/www/portail/prod/web/index.php on line 7
如何在没有 -o
选项的情况下进行自动加载?
有两种修复方法。
将
composer.json
更改为"Portal\Core\": "src/core/"
或将
core
目录重命名为Core
https://getcomposer.org/doc/04-schema.md#psr-4
The subdirectory name MUST match the case of the sub-namespace names.