Laravel 5.5 支援包自動發現(新功能早知道)

JokerLinly發表於2017-06-02

Taylor 與 Dries Vints 合作,為 7 月底或 8 月初發布的 Laravel 5.5 增加了一個新的功能。這個功能使得 Laravel 能更容易地對包進行安裝和啟用的管理。

包的開發者可以在 composer.json 檔案中新增一個新的部分,用來告訴框架應該註冊哪些服務提供器或者它們的外觀。Taylor 甚至在最流行的 Laravel Debugbar 中提交了這個配置的 PR

file
現在,在新版的 Laravel 5.5 上,還和以前一樣簡單地安裝包之後:

composer require barryvdh/laravel-debugbar:dev-master

框架將會自動幫你註冊包的服務提供器並啟用,像這樣:

file

這種做法消除了安裝和使用包時煩人的過程。如果在 composer.json 檔案的 require-dev 部分中使用自動發現來安裝和啟用 Composer 的包,那麼只有當你的環境處於「dev」時,這些服務提供器才會被註冊。即,對於那些只能在開發環境使用的類似 Laravel Dusk 或者 Laravel Debugbar 來說,是非常棒的。這樣一來你的 AppServiceProvider 裡面就不再需要出現根據當前環境或者其他條件來判斷是否使用那些個服務提供器的內容。

還可以輕鬆地刪除已安裝的軟體包,你會發現它們的註冊和別名也將被刪除:

composer remove barryvdh/laravel-debugbar

而通過將它們列入 composer.json 檔案中的 dont-discover 部分,也可以禁用一個或多個包的自動發現:

file

除了 Laravel 5.5 之外,這個功能也開始應用於各種社群開發的包。正如你所見到的,Laravel 正在變得越來越強大,就讓我們一起期待 5.5 的到來!

參考連結:https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518

Stay Hungry, Stay Foolish.

相關文章