php – 从Zend Framework应用程序获取所有模块,控制器和操作

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 从Zend Framework应用程序获取所有模块,控制器和操作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个用于ACL管理的Zend控制器,所以我的问题是:如何获取Zend应用程序中的所有模块名称,控制名称和操作名称来构建ACL控制? @H_419_1@我使用Zend_Navigation,如果您的ACL中不存在该资,则Zend_Navigation将抛出异常.而且我想使用数据库来拒绝并允许访问.所以我必须先建立数据库.如果我必须手工做,这样做是一件很痛苦的事情.

这可能是一个旧问题,但这正是我这样做
$front = $this->getFrontController();
    $acl = array();

    foreach ($front->getControllerDirectory() as $module => $path) {

        foreach (scandir($path) as $file) {

            if (strstr($file,"Controller.PHP") !== false) {

                include_once $path . DIRECTORY_SEPARATOR . $file;

                foreach (get_declared_classes() as $class) {

                    if (is_subclass_of($class,'Zend_Controller_Action')) {

                        $controller = strtolower(substr($class,strpos($class,"Controller")));
                        $actions = array();

                        foreach (get_class_methods($class) as $action) {

                            if (strstr($action,"Action") !== false) {
                                $actions[] = $action;
                            }
                        }
                    }
                }

                $acl[$module][$controller] = $actions;
            }
        }
    }

脚本宝典总结

以上是脚本宝典为你收集整理的php – 从Zend Framework应用程序获取所有模块,控制器和操作全部内容,希望文章能够帮你解决php – 从Zend Framework应用程序获取所有模块,控制器和操作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。