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



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

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

据我所知,选项是:

  1. 在application.ini中包括所有路由定义
  2. 在引导程序中包括所有路由定义.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

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

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

最新更新