使用Magento(PHP)进行编程时,我在重写类时练习了DI。我可以随意在构造函数中随意添加任何参数,以注入服务依赖项,如下所示:
class X
{
protected $service_a = null;
protected $service_b = null;
...
public function __construct(ServiceA $a, ServiceB $b, ... )
{
$this->service_a = $a;
$this->service_b = $b;
...
}
}
以某种方式,在实例化类X的某个地方,系统可以自动检测类X的构造函数中的参数定义。不管我如何修改该定义,系统总是将正确的服务传递给构造函数。在Angular中,是同样的故事。
我的问题是如何在PHP和javascript中使其成为可能???如果定义自己的类,则必须根据构造函数定义实例化它。他们如何使过程(检测构造函数中的参数)自动完成?