/**
* 获取控制器下的所有的控制器类名称和控制器类中的所有的方法
* @param string $path 控制器的存放路径
* @return array
*/
function getControllerClassFunction($path="./libs/Controller/"){
//设置加载的文件拓展名
spl_autoload_extensions('.class.php');
//加载控制器目录下的所有类
set_include_path(get_include_path().PATH_SEPARATOR.$path);
//设置为自动加载文件
spl_autoload_register();
$handle=opendir($path);
$arr['function']=array();
$arr['file']=array();
//读取控制器目录下面的所有控制器文件,并将每一个控制器类的名称和类里面的方法放进数组$arr中
while(($file=readdir($handle))!==false){
if(!($file=='.'||$file=='..')){
//将文件名称分割便于获取控制器名
$file=explode("Controller", $file);
//获取控制器文件下的类名
$filename = $file[0].'Controller';
//获取该类下面的所有的函数名称
$funcs=get_class_methods($filename);
for($i=0;$i<count($funcs);$i++){
//将重复的方法名去掉
if(!(in_array($funcs[$i], $arr['method'])))
//将类中的不重复的方法名称放进数组中
$arr['method'][]=$funcs[$i];
}
//将控制器名称放入数组中(只是放入控制器文件Controller前面的字段)
$file=$file[0];
$arr['file'][]=$file;
}
}
return $arr;
}
//这是我写的一个关于如何读取控制器下面所有的类名称和里面的方法的函数
//便于我们在index.php中判断前端传过来的控制器方法 或 控制器是否存在
//希望大家给我验证一下,看行不行,谢谢大家啦!