1. 程式人生 > >框架之中類的執行方式

框架之中類的執行方式

param all 控制器 ctu sna 分享 拼接 技術分享 post

在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:

技術分享圖片

框架之中類的執行方式