0

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

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

据我所知,选项有:

  1. 在 application.ini 中包含所有路由定义
  2. 在 bootstrap.php _initRoutes 方法中包含所有路由定义
  3. 从 bootstrap.php 自动加载一个资源,该资源从单独存储的 routes.xml 文件中编译和添加路由

该应用程序将包括一个核心“站点”,该“站点”由单独的模块扩展,实质上是提供多站点应用程序。

这是我提出的应用程序结构的一个示例:

|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
4

1 回答 1

1

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

protected function _initRoutes()
{
    $routes = array(
        ....
    );
    $router = Zend_Controller_Front::getInstance()->getRouter();
    $router->addConfig(new Zend_Config($routes), 'mymodulename');
    return $router;
}
于 2012-02-06T21:35:37.837 回答