[分享]關於新版本 Composer 會導致 Class not found 的問題

chenlixin發表於2021-05-17

最近一次的更新流程:

curl -sS https://getcomposer.org/installer | php (預設下載最新版本)
sudo mv composer.phar /usr/local/bin/composer
composer dump-autoload -o

執行程式報 Class not found 錯誤

Class 'Mws\Laravel\AmazonFeed' not found

以前也執行過 composer dump-autoload -o,但是程式執行都是正常的。

回顧執行過程發現有以下提示:

關於新版本 Composer 會導致 Class not fount 的問題

關鍵的提示xxx located in xxx does not comply with psr-4 autoloading standard. Skipping.

專案裡部分舊的索引關係被刪除

關於新版本 Composer 會導致 Class not fount 的問題

網上說比較舊的依賴包會有這種情況,比如 autoload_psr4.php

只保留了 'Mws\\Laravel\\' => array($vendorDir . '/tapha/mws-laravel/src'),但該擴充套件包的類實際目錄為 $vendorDir . '/tapha/mws-laravel/src/Classes'

下載官方的舊版本composer,嘗試解決

getcomposer.org/download/

關於新版本 Composer 會導致 Class not fount 的問題

可以看到 2020.10 推出了 2.0 版本,而我最後一次更新索引是在 2020.07。

重新執行命令,恢復丟失的索引關係

下載 1.10.x 的 composer.phar
sudo mv composer.phar /usr/local/bin/composer
composer dump-autoload -o
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章