我用作曲家的自动加载类系统运行一个门户:
"autoload": { "psr-4": { "Portal\\": "src/" } }
当我跑步时它会起作用 composer.phar dump -o 例如,我的类Boostrap被很好地引用到 vendor/composer/autoload_classmap.php 文件:
composer.phar dump -o
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 选项
-o
有两种方法可以解决这个问题。
改变 composer.json 到
composer.json
"Portal\\Core\\": "src/core/"
或重命名 core 目录到 Core
core
Core
https://getcomposer.org/doc/04-schema.md#psr-4
子目录名称必须与子命名空间名称的大小写匹配。
http://www.php-fig.org/psr/psr-4/