
PHP类反射常在MVC中URL解析到指定Module,Controller方法使用
Reflection的类结构整理
<?php
class Product{
public function Lists($category,$form){
var_dump($category);
var_dump($form);
}
}
$url = "/Product/Lists/Category/5/form/6";
$url = ltrim($url, '/');
$pathinfo = explode('/',$url, 3);
$module = $pathinfo[0];
$action = $pathinfo[1];
$var = array();
preg_replace('@(w+)/([^/]+|s+)@e', '$var['\1']=strip_tags('\2');', $pathinfo[2]);
if(class_exists($module)) {
$reflectClass = new ReflectionClass($module);
$obj = $reflectClass->newInstance(); //实例化类
if ($reflectClass->hasMethod($action)) {
$reflectClass->getMethod($action)->invokeArgs($obj, $var); //执行$obj方法
}
}





近期评论