如示例here
中所示
$injector->define('Car', ['engine' => 'V8']);
在engine
行中,Car
实际上是基于$engine
的构造函数(Car
)的参数变量名称。
这没有问题,但是如果某天public function __construct(Engine $motor)
的作者决定将其构造函数的参数变量名称更改为其他名称(例如,someDTO.getImmutableList().stream().collect(toCollection(ArrayList::new));
),该怎么办?这会破坏注射器。
是否有避免这种情况的方法,也许是通过位置而不是文字参数名称来定义?