在一个项目(工作2)中,我们被迫制作一个" php composer.phar dump-autoload"和#34; php composer.phar dump-autoload -o"每次我们添加一个新文件(我们的Web项目中的新类)。 如果我们不输入这些命令行,自动加载器拨号会告诉我们找不到这个类......
对于个人项目,我从未被迫为每个新的创作类别键入这些命令行。
在我的composer.json中,我把它放了:
"autoload": {
"psr-4" : {
"App\\": "app/",
"Database\\": "app/",
"Helpers\\": "app/",
"": [
"app/",
"lib/"
]
}
}
因此,我不明白,为什么,每次我们在文件夹中添加一个文件" app",我们必须制作" php composer.phar dump-autoload"和#34; php composer.phar dump-autoload -o" ...
ps:我在目录中没有名称空间的类" app"和" lib"。
你知道它可以来的地方吗?
谢谢。
答案 0 :(得分:0)
在添加新类之后必须转储自动加载器的唯一原因是使用类图自动加载,而不使用PSR-0或PSR-4。
这应该在该应用程序的composer.json
文件中明确指出,类似于"autoload":{"classmap":[...]}
。
如果不存在,则不需要转储自动加载器。
如果composer dump-autoload
无法正常工作,并且需要composer dump-autoload -o
,则您的自动加载PSR定义中存在错误。
我很困惑你的composer.json
的摘录是否来自你的非工作的例子 - 我只能说它应该在没有倾销的情况下工作。但它仍然不是最佳的。