簡體   English   中英

築巢還是不築巢? MVC控制器(CodeIgniter)

[英]To Nest or Not to Nest? MVC Controllers (CodeIgniter)

背景:

我在准確地了解如何最好地使用MVC架構中的控制器時遇到了一些麻煩。

我有一個遵循此URL方案的webapp:

  • / -主索引
  • /static-page靜態頁面
  • /categories特定類別的索引
  • /categories/users特定類別用戶的索引
  • /categories/users/id#/user-name -特定類別的特定用戶
  • /categories/event-type-A type-與特定類別相關的事件/categories/event-type-A索引
  • /categories/event-type-A/id#/event-name特定類別的特定事件
  • /categories/event-type-B索引,用於與特定類別相關的事件
  • /categories/event-type-B/id#/event-name特定類別的特定事件

*注意:此URL結構類似於StackOverflow的URL結構,如果存在id#則會自動更正格式錯誤的URL(錯誤的event-name )。

題:

由於categoriesusersevent-type各自具有與之關聯的獨特功能(即,編輯用戶,操縱事件等),因此它們都是它們自己的控制者(對嗎?)。 而且由於event-type-Aevent-type-B非常相似,因此它們共享從events類擴展的通用功能。

您如何建議我組織控制器,使其遵循OOP和MVC設計中的“標准做法”?

我目前有一個用於靜態頁面的Pages類,並且期望有一個categories類調用users類, event-type-Aevent-type-B類(如上所述),它們是events類的擴展...但是從這里我不確定如何最好地進行。

任何簡單/偽代碼示例將不勝感激。

附加信息:

僅供參考:我正在使用PHP / MySQL。 我一直在嘗試通過編寫自己的框架來學習MVC,但是最近切換到了CodeIgniter。 話雖如此,CodeIgniter專用解決方案或通用MVC解決方案都足夠。

更新:

正如下面的 Ako 所述 ,我絕對可以將events組合到一個控制器中,然后從中生成兩個type s。 我對如何實際設置每個控制器(定義哪些方法等)以使其正常工作感到困惑。

看來此答案提供了令人滿意的解決方案。

在本質上:

在需要時使用HMVC加載必要的MVC三合會。

我以前從未聽說過HMVC ,但是顯然,它可以讓我指定何時調用某些MVC三合會,這些三合會最終將使我能夠控制何時調用不同的Controller。 這將允許每個部分( categorieseventstypes等)充當具有各自的index頁(可以調用)的獨立模塊,但也可以根據需要提供處理更多詳細數據的功能。

如何將/categories/event-type-A/categories/event-type-B更改為/categories/events/type type可能是AB (或類似的東西)之一?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM