大家有没有这种经历,每次面试都被问 Laravel 的容器是什么?那容器到底是啥子?

容器是啥子?
容器有什么好处?
什么时候该用容器?
容器和依赖注入有关系吗?
什么时候用依赖注入什么时候用容器?
不懂这个,求解答。。。

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

这里面或许有你的答案 fata.lapland.name/page/2.1_Basic_Bi...

3年前 评论
讨论数量: 25

虽然有点理解,但是也说不清楚,插眼,等一波正确面试答案

3年前 评论
游离不2

答曰只可意会不可言传

3年前 评论

@游离不2 你们就都意会不言传吧,哪天我们让summer搞个匿名讨论,那会大家肯定就放开说了

3年前 评论

@wuyan 卧槽,这是我看过最好的资料,感谢分享!

3年前 评论
wuyan94zl 3年前

phpdi

使用下这个扩展包你就懂了

我不建议看文章,各种高逼格 解析 轮子,整得我懵逼。

先了解轮子怎么用,再学 解析 轮子。

3年前 评论

@wuyan 还有个问题,我们啥时候该用容器?

3年前 评论
wuyan94zl 3年前
  • 翻下论坛文档
3年前 评论

Q:容器是什么? 容器有什么好处?容器和依赖注入有关系吗?
A:Laravel 服务容器是一个用于管理类依赖以及实现依赖注入的强有力工具。
Q:什么时候该用容器?
A:Laravel 的核心之一就是这个服务容器,只要使用这个框架,就会用到容器。
Q:什么时候用依赖注入什么时候用容器?
A:当我们要实现依赖注入的时候,可以不需要容器,但是使用容器的话,就是为了实现依赖注入。
有讲的不对的地方,欢迎指正。

3年前 评论

Q: 容器是什么?, 容器好处?

A: 一个注册树 模式, 好处? 那就是说 注册树 的好处了。

A: 好处: 我认为主要是,更好管理。如果不用 注册树 ,每个人写一堆的类,谁知道有什么功能。

Q: 什么时候该用容器?

A: 当某个模块复杂,并且复用率高,可以考虑把模块加入到容器。

Q: 什么时候用依赖注入什么时候用容器?

A: 容器同上,我还以为是同一个问题。

依赖注入在可能需要替换类的使用。

如: 短信接口类 绑定 阿里云短信(就是 契约 ),然后注入 短信接口类。

到时候改短信, 短信接口 绑定 渣渣云短信 就可以了。
(依赖注入这里说复杂了,有更简单的。直接传参就是依赖注入了…. )

有讲的不对的地方,欢迎指正。

3年前 评论

:blush: 期待大佬的讲解

3年前 评论

个人认为这么几点。
1.容器就像是一个单例的大仓库,使得原来分散的单例集中放在容器中,容易统一查找。 2.ioc 是 依赖注入和容器结合后的一种更高级的模式,名字是是控制反转容器,使用上回避了自己去一个个将需要的依赖手动注入的过程。从组合上来说,用反射解决的依赖反转,或者解决的依赖注入,而注入的内容是从容器中取得的。合起来构成了依赖反转控制容器。 我个人总结容器是个单例(也不一定是单例)/对象的仓库。 自己写单例写多了自然会朝容器发展

3年前 评论

我的理解是和自动加载一样的东西,只不过一个是不用自己引入文件,一个是不用自己实例化类.

3年前 评论
eeecm (作者) 3年前

容器就是一个装类的实例化的东西。
你需要先注册类的实例化方法,当你需要这个类的实例化的时候,容器才会按照你注册的实例化方法来实例化一个对象出来。

3年前 评论

我现在理解容器就是一个注册树。

3年前 评论

容器其实就是注册树+单例;
也有些其他框架的 容器 支持 注册树+单例或者多例(tp5.1是这样);
不懂的话可以先了解下设计模式,再解刨下源码(最好画个图),很容易就理解了,自己再用代码实现一次;

3年前 评论

关键词 反射

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!