2015-02-23 16 views
3

我試圖綁定Laravel AppServiceProvider中的一些服務,但服務未綁定。我想,AppServiceProvider甚至沒有被調用。其實,我做了一個新的,它的工作。Laravel - AppServiceProvider未被調用

所以我的問題是,我做錯了什麼?還是沒有調用AppServiceProvider?

+0

如果服務提供者在'config/app.php'中註冊,它應該被調用。說更多我需要看你的代碼 – lukasgeiter 2015-02-23 14:48:13

+0

這個提供者在Laravel作爲默認提供者,我的意思是,這個提供者不是我的,我只是試圖添加一些更多的綁定到它。 – 2015-02-23 15:16:48

+0

我很清楚這一點。 – lukasgeiter 2015-02-23 15:17:51

回答

8

Laravel 預編譯基本上每個請求都使用某些類。這有助於性能優化。要編譯的文件可以在config/compile.phpfiles下指定。該default one看起來是這樣的:

'files' => [ 
    realpath(__DIR__.'/../app/Providers/AppServiceProvider.php'), 
    realpath(__DIR__.'/../app/Providers/BusServiceProvider.php'), 
    realpath(__DIR__.'/../app/Providers/ConfigServiceProvider.php'), 
    realpath(__DIR__.'/../app/Providers/EventServiceProvider.php'), 
    realpath(__DIR__.'/../app/Providers/RouteServiceProvider.php'), 
], 

當運行php artisan optimize調試未啓用時(或與--force選項)該等上市文件及其它框架類將被寫入storage/framework/compiled.php

,如果你改變這些預編譯的文件之一,這意味着,變化不會立即應用(如果存在compiled.php),但你還是再次運行後php artisan optimize後才能運行php artisan clear-compiled清除compiled.php文件。

當然,您也可以從列表中刪除AppServiceProvider作爲替代解決方案。