php - 获取 zf2 中的所有模块名称

标签 php zend-framework zend-framework2

我想列出我的项目中包含的所有模块、 Controller 和操作以用于 acl 目的。但我不知道如何从 zf2 获取此类信息。任何人都知道如何使这项工作?谢谢你:)

最佳答案

试试这个,

$manager        = $this->getServiceLocator()->get('ModuleManager');
$modules        = $manager->getLoadedModules();
$loadedModules      = array_keys($modules);
$skipActionsList    = array('notFoundAction', 'getMethodFromAction');

foreach ($loadedModules as $loadedModule) {
    $moduleClass = '\\' .$loadedModule . '\Module';
    $moduleObject = new $moduleClass;
    $config = $moduleObject->getConfig();

    $controllers = $config['controllers']['invokables'];
    foreach ($controllers as $key => $moduleClass) {
        $tmpArray = get_class_methods($moduleClass);
        $controllerActions = array();
        foreach ($tmpArray as $action) {
            if (substr($action, strlen($action)-6) === 'Action' && !in_array($action, $skipActionsList)) {
                $controllerActions[] = $action;
            }
        }

        echo $loadedModule . "\n";
        echo $moduleClass . "\n";
        print_r($controllerActions);
    }
}

关于php - 获取 zf2 中的所有模块名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21494366/

相关文章:

php - 在 Zend Framework 2 应用程序的表单集合中使用 dgrid

sql - 如何将 GREATER_THAN/LESS_THAN 运算符添加到 Zend\Db\Sql 中的数据库查询?

使用 TableGateway 在 ZF2 中进行 MySQL 全文搜索

php - Android volley 通过图片上传发送信息两次

php - 拉维尔 5 : Middleware before & after into routes

PHP 限制 session var sql 错误

php - 如何检查 Zend_Db_Adapter_Pdo_Mysql 对象是否连接到数据库

php - Zend Framework - 你能支持多个 View 渲染器吗?

javascript - 从同一页面获取特定类字段内容(Javascript 或 PHP)

zend-framework - 使用 Zend Framework 验证日期是否大于或等于今天的日期验证器