【发布时间】:2012-05-10 22:44:02
【问题描述】:
背景:
我在理解如何在 MVC 架构中最好地使用控制器时遇到了一些麻烦。
我有一个遵循此 URL 方案的 web 应用程序:
-
/- 主索引 -
/static-page- 静态页面 -
/categories- 特定类别的索引 -
/categories/users- 特定类别用户的索引 -
/categories/users/id#/user-name- 特定类别的特定用户 -
/categories/event-type-A特定类别相关事件的索引 -
/categories/event-type-A/id#/event-name- 特定类别的特定事件 -
/categories/event-type-B特定类别相关事件的索引 -
/categories/event-type-B/id#/event-name- 特定类别的特定事件
*注意:此 URL 结构类似于 StackOverflow 的,如果存在 id#,则会自动更正格式错误的 URL(错误的 event-names)。
问题:
由于categories、users 和event-types 都具有与之相关的独特功能(即编辑用户、操纵事件等),它们都是自己的控制器(对吧?)。由于event-type-A 和event-type-B 非常相似,它们共享从events 类扩展而来的通用功能。
您建议我如何组织我的控制器,使其遵循 OOP 和 MVC 设计中的“标准实践”?
我目前有一个用于静态页面的Pages 类,我希望有一个categories 类调用users 类、event-type-A 和event-type-B 类(如上所述)是events 类的扩展...但是从这里我不确定如何最好地进行。
任何简单/伪代码示例将不胜感激。
其他信息:
仅供参考:我正在使用 PHP/MySQL。我一直在尝试通过编写自己的框架来学习 MVC,但最近切换到了 CodeIgniter。话虽如此,CodeIgniter 特定解决方案或通用 MVC 解决方案都足够了。
更新:
作为Akomentioned below,我绝对可以将events 合并到一个控制器中,然后从中生成两个type。我只是对如何实际设置每个控制器(定义哪些方法等)以使它们正常工作感到困惑。
【问题讨论】:
标签: php codeigniter hierarchical codeigniter-routing