以往我们安装一个第三方的package的时候,一般需要经历下面三步:

  1. 安装组件包,通过composer require或者composer update
  2. config/app.php中注册这个组件的service provider
  3. 注册facade,如果有的话

现在呢,可以简单一点了:有了laravel 5.5的组件自动检测(注册)功能,你只需要安装了组件包,也即上面的第一步,就可以直接使用了。但是,需要注意的是,这个特性只有当你安装的组件本身配置了相应的自动检测功能以后,才能实现,说白了也即只有你要装的组件,明确声明支持laravel 5.5了,这个特性才能正常启用。

比如说目前呢,Laravel Debugbar这个组件已经支持自动检测了,我们可以看到它的composer.json文件里,多了一段extra代码:

"extra": {
    "laravel": {
        "providers": [
            "Foo\\Bar\\ServiceProvider"
        ],
        "aliases": {
            "Bar": "Foo\\Bar\\Facade"
        }
    }
}

也就是说,原来需要我们自己手动添加到config/app.php当中的provideralias,现在由package作者们在组件的composer.json文件里声明,也即添加一个extra部分。

这个新特性还有一个好处就是,当我们移除某一个package的时候,任何跟这个组件相关的东西,就一下子都清理了,而不像以前,通过composer删除组件后,还要去删除config/app.php里相应的注册,经常顺序搞错了还会导致artisan命令中报错,因为往往cache当中还残留有已有的组件注册,那么现在就不存在这个顾虑了。