0

我有幾個星期以來,使用CI IM,但現在我發現我的項目結構的一些問題,我想有人給我一些線索,因爲我有點卡住了,問題是這樣的:什麼是codeigniter項目的最佳結構以及如何使用它?

我有我的項目MVC,所以,我將它分成文件(每個功能),例如,有一個文件的所有功能對應登錄,其他與所有相關的後(這是一個例子),但現在我當我需要使用登錄或發佈到項目的另一部分時,閱讀我發現我不能從另一個控制器調用控制器,我可以使用幫助器,但仍然需要使用模型,所以我必須把這段代碼粘貼到我調用模型的控制器中,等等(並且它不是很好),我發現我可以使用模塊,但我不希望直到有人可以使用模塊給我一個這方面的經驗,我不想改變項目,是任何方式我可以運行所有這些控制器(我知道我可以使用run ::我不知道如果我可以發送參數),任何想法請?

在此先感謝。

回答

2

公平的警告,這種類型的問題,也會受到SO版主得到擊落,但我會給你不管一些提示:

  1. 控制器的行動是一次性使用的。如果您發現自己在多個控制器中出現重複代碼(或者需要從另一個控制器調用控制器函數),那麼您肯定應該將該代碼移動到模型或庫中。

  2. 模型是特定於對象的,而不是特定於操作的。除非您有多種類型的登錄(大部分應用/網站只有成員登錄,但您可能有管理員等存儲在與其他表不同的表中),否則我不會有專門用於登錄的模型。相反,有一個User_model類,並使function login($email, $password)該類的一種方法。

  3. 控制器到模型的交互應該非常簡潔。如果你發現自己有30行代碼在同一個控制器和模型之間來回傳遞數據,那麼你可能會試圖用一個控制器動作來做太多事情。

  4. 保持你的模型脂肪,控制器,並享有

+0

感謝...還是犯規給我結構的想法...如果我將代碼移到一個庫,我不能叫我的模型從它...我需要更多的像一個模塊... – jpganz18 2012-03-01 23:09:54

+0

是您可以。你有全局的'get_instance()'助手可以從你的代碼中的任何地方訪問任何加載的模型或庫... – landons 2012-03-01 23:20:42

+0

更好的是,如果你的庫中的代碼依賴於模型,它可能不應該在圖書館,但在模型中... – landons 2012-03-01 23:22:01

相關問題