2011-09-04 123 views
0

對我來說很簡單...我是Zend框架的全新品牌!Zend框架 - 基於模塊的系統架構

我試圖找出最好的方式來創建一個使用Zend的CMS可擴展的模塊。這些是CMS的模塊,不一定是Zend的模塊。例如,可能有事件註冊模塊,照片庫模塊等。我希望每個模塊都定義它自己的URI,而不是在bootstrap.php的_initRoutes()中。這可以使每個模塊成爲一個獨立的單元,就像它們在任何CMS中一樣。我們的想法是,在模塊的主控制器中可能會有一個鉤子來定義URI信息,然後將其緩存在數據庫中並由路由器使用。

的一些特殊的問題:

  1. 如若前端控制器將請求路由到一個模塊「前端控制器」 /主控制器,其將請求路由至模塊內的特定控制器/動作?基本上,每個模塊都有自己的前端控制器,負責將請求路由到控制器/操作。這樣做有沒有更好的結構?
  2. 有沒有比使用鉤子來定義URI更好的方法?

同樣,我是Zend的新手,只是想弄清楚基本知識。任何輸入,非常感謝!

回答

1

前端控制器是否應將請求路由到模塊的「前端控制器」/主控制器,以將請求路由到模塊內的特定控制器/操作?

不,你應該只有一個前端控制器。

有沒有比使用鉤子模塊定義URI更好的方法?

如果你把每個模塊一個模塊ZF,您可以創建模塊特定的自舉類。然後,在每個模塊引導類中,可以添加一個_initRoutes()方法,該方法單獨爲該模塊定義路由。

+0

這就是完美!謝謝!我如何得到關於「啓用」或「禁用」ZF模塊?另外,我將如何去創建一個表或任何'安裝'和'卸載'相反? –

+1

在您的主引導程序中,不是使用addModuleDirectory(它將加載所有模塊),而是使用addControllerDirectory添加各個模塊。所以你可以計算出哪些模塊應該在站點上使用,然後遍歷調用addControllerDirectory的列表。至於安裝/卸載,這取決於如何以及在哪裏允許啓用附加模塊。 –

+0

感謝您的回覆。對於ZF來說我很新,並且很喜歡它。 –