2

我想使用Zend Framework 2編寫一個PHP應用程序(僅測試版2)。ZF2:基於模塊的應用程序的默認設置

因爲它將成爲多個Web服務的集合,我決定將它分成不同的模塊(使用自己的數據庫)。

在開始編寫第一個模塊之前,我想編寫每個模塊應該需要的代碼。例如佈局。每個模塊使用相同的佈局。這就是爲什麼我想在全球範圍內編寫它以改進單個模塊的開發過程。

如何爲全球各模塊提供默認值? (例如佈局,插件,默認數據庫模型......)

+0

我認爲你可以依賴注入它,但我不知道如何,如果可能的話。 – Flavius

+0

是否可以加載多個模塊?如果是這樣,我可以編寫一個包含全局內容的主模塊。 – danijar

+0

如果你看看例如akrabat的快速入門你會看到所有模塊的配置都被加載了。所以如果你有一個佈局爲「App」的模塊,你的「FancyWebservice」模塊將自動使用它,除非它決定覆蓋這個配置。對於運送給客戶,您不應該包含佈局,因爲他們可能不想使用自己的佈局。參考https://github.com/akrabat/zf2-tutorial –

回答

0

在ZendFramework2中,所有模塊的配置總是合併。 此外還有一個全局配置可以覆蓋模塊明智的配置。 因此,包含供應商模塊會引入默認配置,您可以通過全局配置覆蓋該配置。 全局配置可能由多個文件組成,可以很容易地區分待配置模塊。

我的第一個例子是article of akrabat about module configuration and overrides

這種模式的另一個很好的例子是Akrabat的快速入門(https://github.com/akrabat/zf2-tutorial):

  • 一個應用模塊,基於ZendSkeletonApp
  • 一個相冊模塊,你實際做的部分。

在應用模塊有CONFIG爲基本的路由,視圖和佈局都設置 在相冊模塊僅存在的設立爲專輯具體事物(例如依賴注入),該視圖並從App-modules配置中使用路由。

您可以決定覆蓋在每個模塊的基礎上這個配置還是全球範圍內,在默認的項目佈局的CONFIGS放在這樣的:

/config/application.config.php基本配置
/config/autoload/*.config.php可用於覆蓋模塊或應用程序配置(例如用於本地開發)
/module/[your-module]/config/[your-module].config.php模塊的默認配置
/vendor/[vendor-module]/config/[vendor-module].config.php您插入的模塊,但具有依賴注入的定義。如果它使用例如你想覆蓋的數據庫一些參數在你的/config/autoload/*

相關問題