博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel 依赖注入原理
阅读量:6434 次
发布时间:2019-06-23

本文共 1055 字,大约阅读时间需要 3 分钟。

众所周知 Laravel 的文档对于依赖注入只写了如何使用,相信大多数人对于他的实现原理并不太清楚。虽然使用过程中并不需要关心她的原理,但是了解原理让你使用起来更自信。这个帖子就通过一个小 demo 来简述实现原理,demo 如下,该 demo 可直接运行:

test(); }}class MysqlAdapter{ public function test () { echo "i am MysqlAdapter test"; }}class app{ public static function run ($instance, $method) { if (! method_exists($instance, $method)) return null; $reflector = new ReflectionMethod($instance, $method); $parameters = [ 1 ]; foreach ($reflector->getParameters() as $key => $parameter) { $class = $parameter->getClass(); if ($class) { array_splice($parameters, $key, 0, [ new $class->name() ]); } } call_user_func_array([ $instance, $method ], $parameters); }}app::run(new Database(), 'test');

原理主要运用了PHP反射api的 ReflectionMethod 类,在PHP运行状态中,扩展分析PHP程序。具体使用可查看手册。

转载于:https://www.cnblogs.com/xiashuo-he/p/4890966.html

你可能感兴趣的文章
在VS2012中实现Ext JS的智能提示太简单了
查看>>
Extnet Direct 提交后台事件文件下载设置
查看>>
邻接矩阵与二叉排序树
查看>>
CSS选择器
查看>>
购物车练习
查看>>
js实现在表格中删除和添加一行
查看>>
SOCKET简单爬虫实现代码和使用方法
查看>>
跨域解决方案汇总
查看>>
In App Purchase
查看>>
js判断对象的类型的四种方式
查看>>
RPC框架的可靠性设计
查看>>
使用自选择创建团队
查看>>
基准测试(Benchmarks)不必消亡
查看>>
ceph 常用命令记录(完善中...)
查看>>
C# 7.3新特性一览
查看>>
用Chrome开发者工具调试一切
查看>>
简易mvvm库的设计实现
查看>>
AppDynamics把业务交易跟踪扩展到SAP环境
查看>>
[Three.js]Three.js中文文档-自定义混合方程常数
查看>>
Kafka 处理器客户端介绍
查看>>