码迷,mamicode.com
首页 > 其他好文 > 详细

框架之中类的执行方式

时间:2018-01-15 17:35:17      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:method   demo   dex   alt   style   参数   ram   UI   反射   

在yiparts的mvc框架之中:

获取类对象:

// 拼接获取控制器文件所在路径
 $classfile .= $ClassName..php;
@require_once ($classfile);
// 执行调用
$view = new $ClassName ();

反射获取需要执行的方法的参数,然后将方法的参数

/* 反射, 获取执行的function参数对应关系 */
$reflector = new ReflectionMethod ( $ClassName, $methodName );
$func_params = $reflector->getParameters ();
// example:picture/index => index($id,$zid)
// res:Array ( [0] => ReflectionParameter Object ( [name] => id ) [1] => ReflectionParameter Object ( [name] => zid ) )
// 调用反射去除在url传递的不需要的参数
foreach ( $func_params as $k => $v ) 
{
  $pv = self::$URL_PARAMS [$v->name];
  if ($pv != ‘‘) {
    $params [$k] = $pv;
  }
}

假定方法名 a($c){ }那么$params = array(‘name‘=>123);

回调执行:

// 回调执行action->method
call_user_func_array ( array ( $view,$methodName), $params );

完整小demo:

技术分享图片

 

框架之中类的执行方式

标签:method   demo   dex   alt   style   参数   ram   UI   反射   

原文地址:https://www.cnblogs.com/xuweiqiang/p/8288825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!