При программировании на 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 ???Если я определяю свой собственный класс, я должен создать его экземпляр в соответствии с определением конструктора.Как они делают процесс (обнаружение параметра в конструкторе) выполненным автоматически?