0

我不想把它保存在配置文件中

return array(
    'modules' => array(
        'Application',
        'ZfcUser',
        'ZfcBase',
        ...
    ),        
);

如何将模块列表从数据库加载到 zf2?

4

3 回答 3

1

最好的方法是:编写一个名为 YourModuleManager 的模块,让它用几个控制器管理模块,然后按照 sam 在上一个答案中所说的操作

于 2013-03-25T08:40:54.337 回答
1

你没有。如果您需要从管理面板管理模块,我认为最好的方法是将模块阵列移动到它自己的文件中,例如:

应用程序.config.php

<?php
return array(
    'modules' => require_once __DIR__ . 'application.modules.php',
    // rest of application.config.php
)

应用程序.modules.php

<?php
return array(
    'Application',
    'ZfcBase',
    'ZfcUser',
    // more...
);

然后,您可以使用此文件并向其编写管理前端。该文件显然是可写的。请记住,在模块初始化时,框架还不知道数据库。

于 2013-03-25T06:48:38.373 回答
0

示例:通过用户 id 查找,当 auth/login/etc 时。论教义

$moduleRepository = $em->getRepository("your module\Entity\your class, where get all name module etc.");
$module = $moduleRepository->findOneByUser($user->getId());
$moduleName = $module->getName();
global $modules;
$modules[] = $moduleName;

// ... // 并添加重新加载功能...

于 2015-02-02T10:58:52.927 回答