我很困惑,为什么我无法更改作曲家包的名称空间。我正在使用我的供应商目录中的包运行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
文件和从'autoload'部分自动加载,但我现在想知道是否是这种情况。
我错过了什么?为什么它不会自动加载新的名称空间?
更新
我想原因编辑在包composer.json不会更新PSR4文件命名空间是由于installed.json文件。该文件包含实际安装的内容和指定的命名空间。如果我在该文件中更改包的名称空间并运行自动加载器,则更新的名称空间将生效。通过作曲家文档无法找到关于此文件的许多信息 - 我不确定何时写完文档?
注意'Spatie'命名空间已经在使用和注册,请参阅https://packagist.org/packages/spatie/。如果您依赖任何这些软件包,或者打算发布您的软件包,则可能会遇到问题。 – localheinz
嗨@localheinz,我只是使用Spatie包来追踪问题。我已经运行了自动加载器,并没有什么区别。谢谢 – user3455246
*您运行自动装载机*是什么意思? – localheinz