8.4 概要
总结
服务容器的力量在于允许我们书写解耦合的功能,并把这些功能传递给需要它的地方。当注册服务时你也可以声明依赖。这意味着当 Drupal 实例化一个服务对象时,它也会实例化它的依赖,并传递给它的构造器。想了解更多可以查看 documentation for Services and dependency injection 。
我们回顾下服务,他们是什么以及他们是怎样工作的 —– 他们是维护可重用、解耦合功能片断的一种伟大方式。我们也引入了依赖注入这个概念 —– 等价向函数(构造函数或者 setter 方法)传递参数。
额外练习
- 追加一个能够作为服务的函数。
- 演示这个函数的静态和依赖注入版本。
- 查看核心代码,找出一到三处你认为可以用依赖注入代替的情况。
- 描述使用依赖注入的两种不同情况。
- 描述一种使用静态函数代替依赖注入的情况。