【问题标题】:Zend Framework - Best Route Method For Large ApplicationZend Framework - 大型应用程序的最佳路由方法
【发布时间】:2012-02-02 17:18:22
【问题描述】:

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

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

据我所知,选项有:

  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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 嗯,基本上我是说您的选项 2 是更好的解决方案。模块所需的任何特定路由都应使用 _initRoutes 方法在该模块引导文件中声明。
    猜你喜欢
    • 1970-01-01
    • 2011-04-01
    • 2011-02-24
    • 2010-12-09
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多