php反射学习之依赖注入示例
php  /  管理员 发布于 7年前   161
本文实例讲述了php反射学习之依赖注入。分享给大家供大家参考,具体如下: 先看代码: (以上代码非原创)将以上代码保存为 run.php 运行方式,在终端下执行 可以看到,我们要执行 HelloController 下的 WorldAction, 通过php 反射,我们实现了, TestModel 对象的自动注入, 上面的例子类似于一个请求分发的过程,是路由请求的分发的一部分,假如我们要接收一个请求 地址例如: /Hello/World 意思是要执行 HelloController 下的 WorldAction 方法。 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》 希望本文所述对大家PHP程序设计有所帮助。hasMethod($action)) { exit("Method $action does not existed!");}// 取类的构造函数$constructor = $reflector->getConstructor();// 取构造函数的参数$parameters = $constructor->getParameters();// 遍历参数foreach ($parameters as $key => $parameter) { // 获取参数声明的类 $injector = new ReflectionClass($parameter->getClass()->name); // 实例化参数声明类并填入参数列表 $parameters[$key] = $injector->newInstance();}// 使用参数列表实例 controller 类$instance = $reflector->newInstanceArgs($parameters);// 执行$instance->$action();class HelloController{ private $model; public function __construct(TestModel $model) { $this->model = $model; } public function actionWorld() { echo $this->model->property, PHP_EOL; }}class TestModel{ public $property = 'property';}
php run.php Hello World
HelloController 的构造函数需要一个 TestModel类型的对象,您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号