我很困惑为什么我无法更改作曲家包的命名空间。我在我的供应商目录中运行了一个带有包的laravel应用程序。
所以,我的composer.json
此套餐包括:
{
"autoload": {
"psr-4": {
"Spatie\\Backup\\": "src"
}
}
}
我想改变命名空间,例如:
{
"autoload": {
"psr-4": {
"Spatie\\Backupdatabase\\": "src"
}
}
}
当我运行自动加载器时,文件vendor/composer/autoload_psr4.php
仍然包含原始命名空间而不是更新的命名空间。我试过了
$ composer clear cache
但这并没有什么不同。
我认为该作曲家通过浏览供应商目录中的软件包来自动加载,查找composer.json
个文件,然后从自动加载文件中自动加载。内部,但我现在想知道是否是这种情况。
我错过了什么?为什么不使用新的命名空间自动加载?
更新
我认为编辑包composer.json中的命名空间不会更新psr4文件的原因是由于installed.json文件。此文件包含实际安装的内容和指定的命名空间。如果我在此文件中更改包的命名空间并运行自动加载器,则更新的命名空间将生效。无法通过作曲家文档找到有关此文件的大量信息 - 我不确定何时会过度撰写?
答案 0 :(得分:0)
即使您已分叉软件包,也不建议更改名称空间。相反,请考虑这样的事情...