1. 程式人生 > >Laravel報class does not exist的一種可能原因及其解決辦法

Laravel報class does not exist的一種可能原因及其解決辦法

Laravel 是一個強大 而優雅 php web 開發框架(至少官方宣傳時是這麼說的),對於各種型別、不同規模的專案它都能得心應手,這在很大程度上歸功於它強大的 IoC 容器和依賴包機制。

Laravel 中與 IoC 相關的關鍵部分就是 ServiceProvider,.對於新手來說,對於 IoC 的概念以及 Laravel 框架的載入流程可能並不十分了解,這就可能在開發過程中出現 的些問題問題而找不到原因。其中比較覺的就是報 ReflectionException Class *** does not exist 異常了。

出現這種情況時,可嘗試如下操作。

首選應該檢查 ServiceProvider 是否已經加入到config/app.php 的 providers 陣列中,若沒有則需要新增。

然後確定 ServiceProvider 的 defer 屬性是否被設定為 true,如果是,則嘗試修改為 false,(如下圖), 在很過情況下,這就是造成這種問題的原因。

$defer = false;

前兩項確認並修正之後,需要清除已編譯的快取檔案並更新 autoload 檔案。在命令列中切換到專案根目錄,依次執行如下命令。

php artisan clear-compiled
php artisan optimize 或者 composer dump-autolpad --optimize

如果這些操作完成之後,問題依舊,那麼恭喜你,掉其它坑裡了大笑這時候請發揮折騰精神,繼續解決方法吧,千萬別因為這些小問題而轉變對 Laravel 的看法,放棄這樣一個優秀的框架。