Настройка определения впрыска по положению в Auryn Dependency Injector - PullRequest
0 голосов
/ 13 декабря 2018

Как видно из примера здесь

interface Engine {}

class V8 implements Engine {}

class Car {
    private $engine;
    public function __construct(Engine $engine) {
        $this->engine = $engine;
    }
}

$injector = new Auryn\Injector;
$injector->define('Car', ['engine' => 'V8']);
$car = $injector->make('Car');

В строке $injector->define('Car', ['engine' => 'V8']);, engine буквально основано на имени переменной параметра Car 's конструктор ($engine).

С этим проблем нет, но что если однажды автор Car решит изменить имя переменной параметра своего конструктора на что-то другое (например, public function __construct(Engine $motor))?Это сломало бы инжектор.

Есть ли способ избежать этого, возможно, определить по позиции вместо литеральных имен параметров?

...