本文译自Matt Stauffer的系列文章.Laravel 5.0 中, 容器可以对其解析的方法进行自动分析, 然后根据类型限制把方法所需要的依赖项自动注入. 本文将介绍这一机制的原理, 何时解析, 如何注入等.依赖注入的背景知识在现代编程实践中, PHP 开发者要学会的首要知识之一就是使用依赖注入. 这就是 SOLID(单一功能,开闭原则,里氏替换,接口隔离以及依赖反转) 中的依赖反转(Dependency Inversion).Laravel 的容器被称为 IOC(Inversion of Control) 容器, 之所以如此命名, 是因为它允许开发者掌控应用底层所发生的事件: 在顶层代码(controllers, 扩展类等)中请求一个实例, 比如 "mailer", 容器就会返回一个 "mailer" 的实例. 这样, 顶层代码不关注底层到底是由哪个服务来发送邮件--不管是 Mandrill, Mailgun 还是 SendMail, 都不重要, 因为所有 mailer 类都实现相同的接口.Laravel 4 中的构造函数注入下面是一个以前的依赖注入的示例:...
class Listener
{
protected $mailer;
public function __construct(Mailer $mailer)
{
$th
...
继续阅读
(24)