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 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 1

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

8年前 评论

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