【发布时间】:2014-09-11 07:08:33
【问题描述】:
我正在尝试做的事情: 设置 PSR-0 自动加载,但作曲家正在生成 PSR-4 自动加载文件。
我正在使用:
1) Laravel 4.2
2) Composer 版本 e77435cd0c984e2031d915a6b42648e7b284dd5c 2014-07-02 15:44:54
我的 composer.json:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries"
],
"files": [
"app/libraries/custom_helpers.php"
],
"psr-0":{
"MyApp":"app/"
}
}
//rest of the file is omitted
在此之后,如果我在终端中运行composer dump-autoload,它应该会在
vendor/composer 目录名为 autoload_psr0.php
相反,它会生成一个 autolooad_psr4.php,它看起来像这样:
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
);
从作曲家文档中,我了解到仍然支持 psr-0。
这可能是因为 Monolog 包需要 PSR-4 命名空间吗?
【问题讨论】:
-
您的命名空间 MyApp 必须根据 composer psr-0 documentation 在末尾使用两个斜杠指定。我不确定这是否是问题。
-
感谢您指出这一点。但这似乎不是错误。
标签: php laravel composer-php autoload