我很困惑,爲什麼我無法更改作曲家包的名稱空間。我正在使用我的供應商目錄中的包運行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