php – 从Zend Framework应用程序获取所有模块,控制器和操作
发布时间:2020-05-25 09:39:27 所属栏目:PHP 来源:互联网
导读:我想创建一个用于ACL管理的Zend控制器,所以我的问题是:如何获取Zend应用程序中的所有模块名称,控制名称和操作名称来构建ACL控制? 我使用Zend_Navigation,如果您的ACL中不存在该资源,则Zend_Navigation将抛出异常.而且我想使用数据库来拒绝并允许访问.所以我
|
我想创建一个用于ACL管理的Zend控制器,所以我的问题是:如何获取Zend应用程序中的所有模块名称,控制名称和操作名称来构建ACL控制? 我使用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;
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
