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,并且还不容易察觉。

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

你担心的问题是Laravel开发者需要保证的,你只管这样去用

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!