在Laravel5.5中,增加了一个新功能,就是支持包自动发现,这个有什么用呢,结合JWT的文档来说明会更好一些。
JWT文档地址:https://jwt-auth.readthedocs.io
可以看到在Laravel 5.4或者更低的版本当中,我们composer扩展包之后,同时还得需要将provider加到配置文件当中去,但是在更高的Laravel版本上,就不再需要这一步了,框架将会自动帮你注册包的服务提供器并启用。
这是因为包的开发者可以在composer.json中加入下图中的一段,用来告诉框架应该注册哪些服务提供器或者它们的外观。
"extra": {
"branch-alias": {
"dev-develop": "1.0-dev"
},
"laravel": {
"aliases": {
"JWTAuth": "Tymon\\JWTAuth\\Facades\\JWTAuth",
"JWTFactory": "Tymon\\JWTAuth\\Facades\\JWTFactory"
},
"providers": [
"Tymon\\JWTAuth\\Providers\\LaravelServiceProvider"
]
}
},
备注: 这里的composer.json并不是我们项目根目录下,而是对应的扩展包目录下的composer.json
/my-project/vendor/tymon/jwt-auth/composer.json
参考链接:
https://laravel-china.org/articles/4901/laravel-55-supports-packet-discovery-automatically