美文网首页
php 遍历系统中所有控制的方法,遍历所有控制器。

php 遍历系统中所有控制的方法,遍历所有控制器。

作者: 王玉伟的伟 | 来源:发表于2020-01-01 18:24 被阅读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;
         }
    

    相关文章

      网友评论

          本文标题:php 遍历系统中所有控制的方法,遍历所有控制器。

          本文链接:https://www.haomeiwen.com/subject/znrgoctx.html