php 遍历系统中所有控制的方法,遍历所有控制器。
2020-01-01 本文已影响0人
王玉伟的伟
系统中所有控制的方法,遍历所有控制器。
public function getAction()
{
//系统中所有控制的方法,遍历所有控制器。
$pathList = glob('../application/admin/controller/*.php');
$controllers = [];
foreach ($pathList as $key => $value) {
$controllers[] = basename($value, '.php');
}
$actions = [];
foreach ($controllers as $key => $value) {
$methods = get_class_methods('app\admin\controller' . '\\' . $value);
$baseMethods = get_class_methods('\app\admin\controller\Base');
$actions[$value] = array_diff($methods, $baseMethods);
array_walk($actions[$value], function (&$v, $k) use ($value) {
$v = $value . '/' . $v;
});
}
var_dump($actions);
}
获取某个目录下的php文件名的函数
// 获取某个目录下的php文件名的函数
private function getControllers($dir)
{
$pathList = glob($dir . '/*.php');
$res = [];
foreach ($pathList as $key => $value) {
$res[] = basename($value, '.php');
}
return $res;
}
获取某个控制器的方法名的函数
//获取某个控制器的方法名的函数
//此方法过滤父级Base控制器的方法,只保留自己的
private function getActions($className, $base = '\app\admin\controller\Base')
{
$methods = get_class_methods($className);
$baseMethods = get_class_methods($base);
$res = array_diff($methods, $baseMethods);
return $res;
}