我只需要自动加载一些类,我不喜欢疯狂的 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.*"
}
}
这为我提供了 core
目录下的 Robbie
命名空间,作为不受 Composer 、第 3 方(供应商)Monolog 命名空间和我的默认或app
目录下源的非命名空间。
在 composer 更新
之后,所有这些在包含生成的 autoload.php 时都可用:
<?php
require_once 'vendor/autoload.php';
// ...
?>
关于php - 如何在不重新安装的情况下使用 Composer 自动加载没有 namespace 的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910626/