Laravel 5.5 支持包自动发现(新功能早知道)

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

本文章首发在 Laravel China 社区

Stay Hungry, Stay Foolish.