php 反射实例应用-thinkphp 控制器调度
来源:互联网 发布:大数据概念股 编辑:程序博客网 时间:2024/05/22 13:46
<?phpclass IndexAction{public function index(){echo 'index'."\r\n";}public function test($year=2012,$month=2,$day=21){ echo $year.'--------'.$month.'-----------'.$day."\r\n";}public function _before_index(){echo __FUNCTION__."\r\n";}public function _after_index(){echo __FUNCTION__."\r\n";}}//执行index方法$method = new ReflectionMethod('IndexAction','index');//进行权限判断if($method->isPublic()){$class = new ReflectionClass('IndexAction');//执行前置方法if($class->hasMethod('_before_index')){$beforeMethod = $class->getMethod('_before_index');if($beforeMethod->isPublic()){$beforeMethod->invoke(new IndexAction);}}$method->invoke(new IndexAction);//执行后置方法if($class->hasMethod('_after_index')){$beforeMethod = $class->getMethod('_after_index');if($beforeMethod->isPublic()){$beforeMethod->invoke(new IndexAction);}}}//执行带参数的方法$method = new ReflectionMethod('IndexAction','test');$params = $method->getParameters();foreach($params as $param ){$paramName = $param->getName();if(isset($_REQUEST[$paramName]))$args[] = $_REQUEST[$paramName];elseif($param->isDefaultValueAvailable())$args[] = $param->getDefaultValue();}if(count($args)==$method->getNumberOfParameters())$method->invokeArgs(new IndexAction,$args);elseecho 'parameters is not match!';http://www.ymsky.net/views/52629.shtml 本文章来至源码世界
0 0
- php 反射实例应用-thinkphp 控制器调度
- PHP反射(ReflectionClass、ReflectionMethod)在ThinkPHP框架的控制器调度模块中的应用
- [php] Thinkphp控制器继承
- PHP API反射实例
- PHP API反射实例
- Java反射应用实例
- Java反射应用实例
- JAVA反射应用实例
- [php]应用控制器(一)
- [php]应用控制器(二)
- PHP reflection反射应用
- Thinkphp 之 A方法 和 R方法 实例化控制器
- thinkphp Controller.class.php 控制器类的祖宗分析
- 反射机制的应用实例
- Java反射应用实例1
- Java反射应用实例2
- php中反射的应用
- PHP应用实例
- 电脑装系统的详细步骤
- 数组做数据成员
- 指针地址与数组地址
- 公证处证实韩寒未列首届新概念获奖名单 萌芽承认疏漏
- 笔画输入法:1234笔画输入法 (电脑版)
- php 反射实例应用-thinkphp 控制器调度
- MyShell 加密壳 v1.0
- Windows核心编程(三)内核对象
- [Leetcode]Count and Say
- 养成写高效的SQL语句的习惯
- HDU 4122 Alice's mooncake shop(RMQ:动态最值)
- Android中Activity、Service和线程之间的通信
- ffplay解读
- 嵌入式机器视觉系统中ARM与DSP的数据通信方法