Zend定义管理员和默认模块

时间:2015-12-26 18:42:16

标签: php zend-framework module admin

我正在编写一个具有管理模块和默认模块的应用程序。我想将管理员文件夹中的所有管理文件(如控制器和视图)放在应用程序路径下,并将默认文件放在默认文件夹中。 我怎么能做到这一点?这是它想要的目录结构

/application
  /models
  /default
  /admin

1 个答案:

答案 0 :(得分:1)

我会做类似以下的事情。

  1. 稍微更改目录结构(添加modules级别):

    /application 
        /models
        /modules
            /default
                /controllers
                /models
                /views
                etc...
            /admin
                /controllers
                /models
                /views
                etc...
    
  2. 启用模块并告诉框架在哪里查找它们;在application/config/application.ini中,添加:

    resources.modules[] = ""
    resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
    
  3. 从默认模块中分离appnamespace,强制所有特定于模块的代码为模块命名空间。在application/config/application.ini中,添加:

    resources.frontController.prefixDefaultModule = true
    

    因此,例如,默认模块中的模型将显示在文件./application/modules/default/models/MyModel.php中,并将命名为Default_Model_MyModel

  4. 为您的顶级模型,控制器等启用appnamespace。application/config/application.ini

    appnamespace = "Application_"
    

    因此,文件./application/models/MyModel.php中可供所有模块使用的顶级模型将命名为Application_Model_MyModel

  5. 没有经过全面测试,但这些方面应该有所作为。