Laravel 的 type-hint auto injection 原理探究
看到Laravel的controller构造函数不用实例化时候传参数就能取到type-hinted的对象的实力,虽说知道这样用不会错,但是不知道怎么实现的,用起来就是不太爽。
在Conainer.php中有个getDependencies($parameters, array $primitives = array()) 方法,该方法的第一个参数$parameters 是个有ReflectionParameter 对象构成的数组,之后通过ReflectionParameter::getClass取出type hinted class,基本原理就是这样。
http://php.net/manual/en/reflectionparamet...
这个特性虽然方便了,但总感觉让代码变得隐晦,容易出bug,并且还不容易察觉。
你担心的问题是Laravel开发者需要保证的,你只管这样去用