《Laravel Dependency Injection (依赖注入) 概念详解》

本文详细解析了依赖注入的概念,特别是Laravel框架中的实现。文章指出,依赖注入主要用于管理大量有复杂依赖关系的对象,例如在框架中。通过示例展示了如何使用依赖注入容器(如Symfony Service Container)来简化对象的创建和依赖管理,使得对象可以专注于自己的职责,而无需关心依赖的具体实现。文中还探讨了如何灵活地更改和配置依赖,以及DI容器如何促进代码的解耦和可测试性。
摘要由CSDN通过智能技术生成

本文翻译自 Symfony 作者 Fabien Potencier 的 《Dependency Injection in general and the implementation of a Dependency Injection Container in PHP》 系列文章。

专有名词翻译成中文后会变得不利于理解,后续文章中将改用括号+中文备注的形式。

上文我通过一些示例讲解了 Dependency Injection ,本文将接着介绍 Dependency Injection Containers (容器) 的概念。

首先记住这句话:

大多数时候,Dependency Injection 并不需要 Container

只有当你需要管理一大堆具有很多依赖关系的不同对象时,Container 才会非常有用(例如框架中)。

上文书,创建 User 对象需要先创建 SessionStorate 对象。这里的有个瑕疵,创建对象时需要提前知道它所有的依赖项:

$storage = new SessionStorage('SESSION_ID');
$user = new User($storage);

以 Zend Framework 中 Zend_Mail 库发送邮件过程为例:

$transport = new <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值