关于laravel容器的使用,大家都是什么情况下用?
我还没有很好的理解laravel容器。
我的理解是,容器里放了好多的可供调用的对象。
需要时可以直接使用,无需new等。
想问一下,大家都会用到这个特性么?
项目中一般怎么去用这个特性呢?是分出个service层,然后把各个service都放到容器里?
在controller里调用?
还是直接不用呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Laravel容器是用来放Service的地方,这些Service就是一个个绑定到容器中的实例对象或闭包或其他的,绑定方式主要三种:bind(),singleton() and instance(),从容器中解析Service方式:make(),这些都在\Illuminate\Container\Container,而\Illuminate\Foundation\Application extends Container。
关于Container是如何工作的,当在Controller中使用Constructor Injection或Method Injection时,就已经在使用Container了,因为Container会自动帮你把这些服务解析出来,如:
所以容器服务一直都在用,总的来说容器就是分离了服务构造的场所,传统是在被依赖对象内构造所需要的服务,而现在是在容器这个场所内构造所需依赖,而且是自动化的,并自动化注入到被依赖对象内,这样就实现了解耦。
关于Container和Application的源码解析可以看下:
Laravel学习笔记之Container源码解析
Laravel学习笔记之IoC Container实例化源码解析