我只需要自动加载一些类,我不喜欢psr-0命名空间疯狂(没有冒犯)。
这曾经在我的项目中工作得很好:
"psr-0": {
"": [
"app/controller/",
"app/model/"
]
}
由于某种原因它不再起作用,即使我使用相同的Composer版本。我需要它用于同时使用Silex的新项目。这可能与Silex发生冲突吗?
我知道“classmap”选项,但它有点无用,因为它要求我每次添加新类时都运行“composer install”。
有任何想法吗?
尝试使用“原始”JSON属性;不是数组(如在您的示例中)。像psr-4
一样,"": "app/"
对我有用:
{
"autoload": {
"psr-4": {
"Robbie\\": "core/",
"": "app/"
}
},
"require": {
"monolog/monolog": "1.2.*"
}
}
这给了我Robbie
目录下的core
命名空间,作为不受composer控制的源的示例,第三方(供应商)Monolog命名空间以及app
目录下的源的默认或非命名空间。
在composer update
之后,当包含生成的autoload.php时,所有这些都可用:
<?php
require_once 'vendor/autoload.php';
// ...
?>
使用classmap
而不是psr-4
:
"autoload": {
"classmap": ["models/"]
}
如果您只想重新生成自动加载文件,请使用composer dump-autoload
。