Zend Framework仅加载默认模块控制器

Sej*_*nus 2 php zend-framework zend-framework-modules

我有两个模块,默认管理员.虽然ZF确实正确加载了管理布局,但它始终只加载默认模块控制器和默认模块视图.

控制器的路径在module.ini文件中为每个模块指定.我也尝试在application.ini中指定它,如下所示:

admin.resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/admin/controllers"
Run Code Online (Sandbox Code Playgroud)

没有任何影响.任何可能出现问题的想法?在开始使用模块之前,我真的很喜欢ZF ..

Sha*_*ell 7

首先,你要在你的声明中声明这一点 application.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.defaultModule = "default"
resources.modules[] = ""
Run Code Online (Sandbox Code Playgroud)

然后,将这段代码放入您的Bootstrap.php文件中

public function _initAutoload()
{
    // Each module needs to be registered... 
    $modules = array(
        'Admin',
        'Default',
        'Support',
    );

    foreach ($modules as $module) {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => ucfirst($module),
            'basePath'  => APPLICATION_PATH . '/modules/' . strtolower($module),
        ));
    }

    return $autoloader;
}
Run Code Online (Sandbox Code Playgroud)

您的模块目录将如下所示

modules/
    |-- admin
    |   |-- controllers
    |   `-- views
    |-- default
    |   |-- controllers
    |   |-- forms
    |   |-- models
    |   `-- views
    `-- support
        |-- controllers
        |-- forms
        |-- models
        `-- views
Run Code Online (Sandbox Code Playgroud)

这实质上将创建三个模块default,adminsupport

顺便说一句......我想我们都在ZF的模块中苦苦挣扎.它只需要时间,然后一旦它工作,它就可以工作.祝你好运.