2013-05-04 167 views
1

如果我在我的項目中有多個模塊,例如我的UI模塊和我的數據庫模塊......什麼決定了哪個模塊被執行?在application.config.php有一個數組,我在想,也許你的模塊命名空間在那裏列出的順序會影響情況,但似乎並非如此。Zend Framework 2多個模塊

我知道這是簡單的,而且很可能在文檔(我沒看!)

TIA

+0

你問哪個問題?目的似乎很模糊。你想解決什麼問題?請澄清。 – David 2013-05-06 14:15:41

+0

如果我有兩個基本上與他們的名字相同的模塊,Zend在打開網站時運行的是哪一個模塊? – aserwin 2013-05-09 18:29:03

+0

所有的路由信息​​都存在於模塊內部。似乎沒有辦法在應用程序級別上操作路由,那麼Zend如何確定在加載站點時執行哪個模塊? – aserwin 2013-05-09 18:30:31

回答

2

在ZF2「應用」僅僅是模塊的容器。模塊本身就是實現應用程序功能的東西。例如,在Zf2SkeletonApplication example中,應用程序的功能(不包括CSS,圖像和javascript等資源)包含在a module called "application"之內。

加載ZF2項目時,將初始化在application.config.php中聲明的所有模塊,並將它們的配置(包括路由)合併到父應用程序配置中。

兩個主要因素決定了廣大什麼代碼的應用程序運行時被執行的:

  1. 包含在每個模塊的Module.php文件(example from the Zf2 Skeleton)模塊的初始化。此初始化代碼定義模塊的配置路徑,自動加載和事件處理。出於性能目的,初始化代碼需要儘可能輕。
  2. 路由本身定義了大部分剩餘執行的入口點:哪些控制器在哪個模塊中執行。然後控制器就會確定運行其他代碼的程度,是否運行其他模塊提供的庫等。

爲了簡單起見,我省略了一些錯綜複雜的內容,但這是一個很好的總體概述。

ZF2 Getting Started Tutorial這樣的教程對學習基礎知識很有價值。


編輯:我要指出,「應用級路由」的「模塊級」被修改,因爲CONFIGS全部合併,模塊本身實現應用程序。

+0

OOOOOHHHHHH!所以,模塊可以看作是部分類(一個.NET)這對我來說更有意義。謝謝。 – aserwin 2013-05-09 21:56:12

+1

哈哈,有趣的觀察。它們確實相似,但也有很大不同:.NET部分類位於語言級別,而ZF2模塊位於應用程序體系結構級別之上。你明白了。 – David 2013-05-10 20:09:41