Zend框架 - 大型应用程序的最佳路径方法

时间:2012-02-02 17:18:23

标签: zend-framework zend-framework-mvc zend-framework-modules

我正在使用Zend Framework构建一个相对较大的站点。我正在考虑在每个模块控制器文件夹中使用模块和文件夹来组织应用程序控制器。

我的问题是,对于每个请求都需要定义路由的应用程序,创建,管理和维护路由的最佳方法是什么?

据我所知,选项包括:

  1. 在application.ini
  2. 中包含所有路径定义
  3. 在bootstrap.php _initRoutes方法
  4. 中包含所有路径定义
  5. 从bootstrap.php自动加载从单独存储的routes.xml文件编译和添加路由的资源
  6. 此应用程序将包含一个核心“站点”,该站点由单独的模块扩展,实质上可以提供多站点应用程序。

    这是我提出的申请结构的一个例子:

    |Project
        |-Application
            |-api
            |-configs
            |-controllers
            |-models
            |-modules
                |-core
                    |-controllers
                        |-Products
                            |-blueController.php
                            |-redController.php
                            |-greenController
                        |-Services
                            |-indoorController.php
                            |-outdoorController.php
                    |-models
                    |-views
                    |-Bootstrap.php
                |-site1
                |-site2
                |-site3
            |-views
            |-Bootstrap.php
        |-Docs
        |-Library
        |-Public
        |-.zfproject.xml
    

1 个答案:

答案 0 :(得分:1)

本着模块化的精神,我认为每个模块最好在它的引导文件中负责它自己的路由信息​​。

protected function _initRoutes()
{
    $routes = array(
        ....
    );
    $router = Zend_Controller_Front::getInstance()->getRouter();
    $router->addConfig(new Zend_Config($routes), 'mymodulename');
    return $router;
}