【发布时间】:2009-06-25 13:51:22
【问题描述】:
我正在编写一个网站脚本,目前我有一个前端控制器,它根据 URI 确定要加载的内容(例如,哪些模块/扩展和控制器)。这是一个好方法吗?如果这很重要,我正在使用 PHP。我只是想知道这是否不是前端控制器的工作......
【问题讨论】:
标签: php design-patterns controller uri
我正在编写一个网站脚本,目前我有一个前端控制器,它根据 URI 确定要加载的内容(例如,哪些模块/扩展和控制器)。这是一个好方法吗?如果这很重要,我正在使用 PHP。我只是想知道这是否不是前端控制器的工作......
【问题讨论】:
标签: php design-patterns controller uri
我使用的方法实际上涉及到两个控制器。
有一个前端控制器控制请求的初始到达。然后是特定于当前页面的页面控制器(取决于 URI)。前端控制器处理加载正确的页面控制器。
Page Controller 的任务是访问 Model(用于 DB 访问)和其他类以组成页面视图的数据。
我想说的是,前端控制器永远不应该做任何特定于 URI 的事情,并且应该尽可能保持通用性,以便可以有效地重用它。
【讨论】:
That's the front controller pattern in a nutshell 和 CakePHP 和 Zend 等框架(我相信)做的事情大致相同(Rails 等也是如此)。
我唯一的想法是您是否应该将加载模块和扩展委托给需要或引用它们的控制器,因为前端控制器通常处理应用程序级操作。
【讨论】: