【问题标题】:Zend Framework - How routing is done in ZF 1.12?Zend Framework - 在 ZF 1.12 中如何完成路由?
【发布时间】:2019-01-25 10:20:11
【问题描述】:

我正在浏览 Zend 文档,但我不清楚 Zend 框架 1.12 中的路由是如何完成的。

我从文档中了解到,当我们在浏览器中点击 URL 时,请求将转到公共文件夹中的 index.php。

但我不知道 Zend 框架如何分解 URL 并调用特定的控制器和操作。

例如。 考虑 URL:http://zendtutorial.local/blog/new

Zend 如何评估 来自 BlogController 的 newAction

【问题讨论】:

  • 如果可以选择的话,建议不要在ZF1上花太多力气。架构已经过时,许多组件都有缺陷。我建议你看看 ZF3/Zend-Express 或者更确切地说是 Symfony。
  • 你是对的。但我正在开发我们使用旧版 Zend 框架版本的项目,即 1.12,因此我别无选择:( .
  • 哦,我为你感到遗憾,我知道斗争:) 祝你好运

标签: zend-framework


【解决方案1】:

当我们点击 URL 首先会发生以下事情:

  1. 公共目录中的第一个 index.php 被调用。
  2. 在 Index.php 中定义了 APPLICATION_PATH、APPLICATION_ENV 等常量并创建了应用程序对象。
  3. application.ini 文件中的设置被初始化。
    • application.ini 包含所有信息,如默认控制器、默认模块、数据库设置等。
  4. 然后调用 Zend_Application 的引导函数。
  5. 此函数从 bootstrap.php 调用 Bootstrap 类。
  6. 然后调用 Zend_Application_Bootstrap_Bootstrap 的 run() 方法。
    • Zend_Application_Bootstrap_Bootstrap :: run() 方法被调用。
  7. 最后,Zend_Controller_Front 的 dispatch() 方法被调用。
  8. dispatch() 方法将请求的 URL 路由到特定的控制器和操作。

【讨论】:

  • 很好的解释一步一步来!也许再增加一两个步骤,如何将带有控制器和操作的请求映射到 XyController.php xyAction .htaccess 仅适用于 Apache(旁注)。
  • @DanFromGermany:谢谢你,丹。对于您对 .htaccess 的关注,我已经编辑了我的答案。
猜你喜欢
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
相关资源
最近更新 更多