//可以根所使用的版本或者不同框架进行修改
//获取应用下的所有控制器和方法
function AllMethods(){
//获取应用名称 tp版本:6.1.4
$app = app('http')->getName();
//拼接目录地址
$dir = base_path() . $app . '\controller';
//列出目录中的文件和目录
$files = scandir($dir);
$methods = [];
$i = 0;
//过滤方法
$get_functions = array('initialize', '__construct', 'registerMiddleware', 'beforeAction','fetch','display','assign','filter','engine','validateFailException','validate','__debugInfo','success','error','result','redirect','getResponseType');
foreach ($files as $file) {
if (strpos($file, '.php') !== false) {
$controllerName = str_replace('.php', '', $file);
$className = '\app\\' . $app . '\controller\\' . $controllerName;
//echo $className;die;
//返回方法名
$met = get_class_methods($className);
//计算数组的差集
$result = array_diff($met,$get_functions);
foreach ($result as $k=>$v){
$methods[$i]['module'] = $app;
$methods[$i]['controller'] = $controllerName;
$methods[$i]['action'] = $v;
$i++;
}
}
}
return $methods;
}
发表评论 取消回复