您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

关于laravel容器的使用,大家都是什么情况下用?

2024/6/30 5:03:59发布36次查看
我还没有很好的理解laravel容器。
我的理解是,容器里放了好多的可供调用的对象。
需要时可以直接使用,无需new等。
想问一下,大家都会用到这个特性么?
项目中一般怎么去用这个特性呢?是分出个service层,然后把各个service都放到容器里?
在controller里调用?
还是直接不用呢?
回复内容: 我还没有很好的理解laravel容器。
我的理解是,容器里放了好多的可供调用的对象。
需要时可以直接使用,无需new等。
想问一下,大家都会用到这个特性么?
项目中一般怎么去用这个特性呢?是分出个service层,然后把各个service都放到容器里?
在controller里调用?
还是直接不用呢?
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会自动帮你把这些服务解析出来,如:
class accountcontroller extends controller{ // 这里是method injection,container会自动解析出request,而不需要去new request获得对象 // 从容器中解析服务是用的container::make()方法 public function test(request $request) { return $request->ip(); }}
所以容器服务一直都在用,总的来说容器就是分离了服务构造的场所,传统是在被依赖对象内构造所需要的服务,而现在是在容器这个场所内构造所需依赖,而且是自动化的,并自动化注入到被依赖对象内,这样就实现了解耦。
关于container和application的源码解析可以看下:
laravel学习笔记之container源码解析
laravel学习笔记之ioc container实例化源码解析
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product