在一些资料中看到说,“服务容器”是laravel 的核心,“服务提供者”也是laravel 的核心。
问题:
1、究竟哪个是核心,还是它们两个组合起来构成了核心?
2、它们两个的关系是什么?
3、它们两个各自的作用是什么的?
4、有“服务容器”,有“服务提供者”,那具体的“服务”在什么地方?打个比方,就是有装饭的锅,有装饭的碗,那饭在什么地方?是在锅里,还是在碗里,还是在田里?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
Laravel中Container就好似一个大水桶,是核心,每一个Service就好似装满一种饮料的瓶瓶罐罐,Service Provider就好似连接饮料瓶和水桶的插管,可要可不要,直接往水桶里倒也行,虽然这样不讲究。。想去大水桶喝饮料去(一次请求来了),Facade就好似是水瓢帮你从水桶里舀水,当然不要也行直接用手,虽然不卫生,所以Facade可要可不要。
奥,对了,还有一个Contract,主要是为了好管理每一个Service,在碳酸水Service里,那也有分类,可乐百事被一个Contract拴在一起,雪碧美年达被另一个Contract拴在一起,主要也是为了好测试好替换而已。。
总之,Laravel这几个主要概念也就干了这些事,没啥高深的。
如有不全面的请留言。
关于这个推荐一篇博文
laravel 学习笔记 —— 神奇的服务容器
简单的说,“服务容器”就是“服务提供者”提供的服务的容器,“服务容器”通过“服务提供者”来获取服务。
一个laravel应用就是一个“服务容器”,整个框架提供的各种功能由“服务提供者”提供并注入到“服务容器”中。每一个“服务提供者”里
register的方法里面使用bind邦定某个对象到一个变量,那个对象就是真正提供服务的对象。应该是服务容器吧,laravel 的核心最重要的功能就是提供一个服务容器,而所有的比如request route等组件都是通过服务容器生产出来的,而服务容器提供者就是告诉服务容器需要生产哪些组件。