2011-03-17 69 views
1

我剛開始學習的Zend(爲此事& OO PHP),我已經花了近4-5周的學習,輔導,圖書等等。我感覺很好,但會拖垮在模型中(那好,我正在學習)。我現在開始我的第一個應用程序(甚至工作);它至少有5個大板塊(包括登錄+將需要ACL),以及一對夫婦最多將有10-12如admin子部分:創建用戶,編輯用戶等Zend框架::一般應用程序設計問題

我創建了一個單一的佈局,並通過工作鏈接完成了大部分頁面瀏覽,並且已經完成了一些表單。

我主要關心的是,我應該重構,使主要部分的模塊,它失控之前,還是我擔心什麼。我認爲我做錯了一件事是我有一個'AdminController',它除了引入管理'視圖'外,沒有什麼比'UserController'中每個'用戶'操作的鏈接。我想也許我應該把用戶操作放在AdminController中。我也在想,我應該製作一個'管理員'模塊,'報告'模塊,'auth'模塊等等。或者最終有8個控制器並且正在增長?我已經有傾斜度,使並保持開發者的網站地圖只是我自己的理智,更何況,我想要做的最好的工作可能:)

回答

2

原則,我喜歡一個插件,能夠模塊爲理念每一組功能 - 新聞,用戶,圖庫等。「插入」該模塊將爲後端管理員和前端顯示器提供功能。它是一個獨立的地方,可以放置所有功能 - 模型,動作助手,視圖助手,查看腳本。等等 - 您需要的內容區域。每個模塊可能有兩個控制器 - News_BackendController和News_FrontendController - 專用於其特定區域。

但在實踐中,我發現ZF模塊很難做到。我知道比我更聰明的人 - 一個低級酒吧,可以肯定 - 可以讓所有人都工作,但我從來沒有碰運氣。

所以我通常最終有兩個模塊 - 前端和後端。例如,對於新聞功能,我會在後端模塊中有一個用於管理內容的新聞控制器;前端模塊中的另一個新聞控制器用於顯示它。

對於我來說,在這個設置中的粘滯點是放置前端和管理員共用的模型功能的地方。一個想法是把它放在一個單獨的庫中,然後創建特定於模塊的模型,以擴展這些特定模塊的功能。例如:

MyLibary_Model_News爲常見新聞的東西。

Frontend_Model_News extends MyLibrary_Model_News任何只有前端的新聞功能,如果有的話。

Admin_Model_News extends MyLibrary_Model_News任何只後端新聞fnctionality,如果有的話。

只是一些想法。一如既往,YMMV。

+0

感謝您抽出時間,您的回答擴大了我的觀點。我的項目不會有'前端' - '後端',所以我想這會大大減少控制器的增長。該項目將成爲受認證/ ACL控制的數據庫應用程序,但是是一個私人應用程序。 – rhaag71 2011-03-17 15:26:18

+0

Glas它幫助。感謝你的接納。 ;) – 2011-03-17 16:32:49