php - 筑巢或者不筑巢 MVC控制器( CodeIgniter )?

  显示原文与译文双语对照的内容
98 2

背景:

我在 Having 架构中理解如何最好地使用控制器的问题是的。

我有一个遵循这个URL方案的web webapp:

  • / - 主索引
  • /static-page - static-页面
  • /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- 特定类别的特定事件

*Note: 这里URL结构与stackoverflow类似,如果存在 id#,格式错误的( 。URL event-name的错误) 会自动更正。

问题:

由于 categoriesusersevent-type 都具有与它们关联的惟一功能( 例如 。编辑用户,操作事件,等等 ),它们都是它们自己的( 右边)的contollers 。由于 event-type-Aevent-type-B 非常相似,它们共享从 events 类扩展的通用功能。

你如何建议我组织我的控制器,这样他们就可以以在面向对象和MVC设计?

目前我有一个用于 static 页面的Pages 类,并且期望有一个调用 users 类,event-type-A 和( 如上所述如上所述) 类的categories 类,是 events 类的扩展。但从这里我不确定如何最好地继续。

任何简单/伪代码示例都将非常有用。

额外的信息:

提示:我正在使用 PHP/MySQL 。我试图通过编写自己的框架来学习 MVC,但是最近已经切换到了 CodeIgniter 。也就是说,一个CodeIgniter特定的解决方案或者一个通用的MVC解决方案就足够了。

更新:

就像以下所提到的,我可以把 events 组合成一个控制器,然后将这两个 type的种子从这个控制器中得到。我只是混淆了如何实际设置每个控制器( 定义哪些方法,等等 ) 以使它们正确工作。

时间:原作者:2个回答

100 0

它看起来像这个答案提供了一个令人满意的解决方案。

从本质上讲:

当需要时使用英镑的来加载必要的MVC triads 。

我以前从未听过 HMVC,但显然它会允许我指定什么时候调用一些 MVC are 。这将允许每个部分( 。categorieseventstypes,等等 ) 充当独立的模块,可以以调用它们的index 页,也可以以提供更精细的数据。

原作者:
80 0

如何将 /categories/event-type-A/categories/event-type-B 更改为 /categories/events/type其中 type 可以是 A 或者 B ( 或者像这样的) 之一?

原作者:
...