2012-10-17 91 views
1

我在CodeIgniter中創建了一個eBay風格(但更簡單)的商店,我想知道處理代碼/控制器項目的最佳方法。CodeIgniter最佳實踐項目列表

目前,我有一個類別控制器,它是主控制器(在路由中)。/category/id應該顯示特定類別的項目列表,以及/ category或/顯示所有項目。

控制器中的類別索引($ id = 0){}加載生成類別列表的類別助手,然後在視圖中將其回顯出來。

現在我已經到了添加項目方面的階段...用戶需要能夠添加項目,查看特定項目,並且類別代碼需要能夠顯示所有項目或特定類別的項目。

我正在考慮有add_item,view_item項目控制器,但現在我想知道我應該如何從類別控制器中獲取類別列表。

我應該有一個物品幫助程序加載項目模型,獲取基於類別的項目列表,將列表分配給一個變量並回顯列表?當用戶想要查看特定項目時,它會加載項目控制器view_item,並添加add_item等?

我也希望類別顯示,而他們正在查看一個項目,所以如果我這樣做,我還需要加載項目控制器內的類別助手......這是不好的做法,由於代碼重複?

回答

1

總之,這是我會做的。

  • /,顯示所有項目。
  • /category/xyz,顯示XYZ類別的所有項目。
  • /item/view/xyz,顯示項目XYZ。
  • /item/add,添加一個項目。
  • ...

這是正常的在您的控制器重用你的模型。否則會很嚇人;這將意味着很多代碼重複。儘可能重複使用您的幫手也很正常。這是幫手的目標!實現一個可以在很多地方重用的函數。當你開始複製+粘貼相同的行時,那就是當你沒有重複使用時。創建一個函數並重用它。

請記住,

  • 型號處理您的數據。 (類別,項目,出價,...)
  • 控制器處理您的HTTP請求和響應。 (加載正確的模型,輸出正確的視圖,...)
  • 幫手處理頻繁的操作。 (在你的車型上,在你的意見,你的要求,...)

希望這會有所幫助。

+0

感謝您的幫助Maxime –