2012-05-29 66 views
4

建議,我想先從Zend Framework 2工作,需要一些指導,框架的架構。我比較Akrabat's ZF2 tutorial與它的ZF1 equivalent,我注意到的主要區別到目前爲止似乎是使用modules。我喜歡將模塊作爲獨立和可重用的代碼片段,並認爲它可以幫助細分我的應用程序並使其更易於維護。比如我可能有以下URL => module映射:需要在Zend Framework的2個模塊和模型架構

http://example.org/products => Products module 
http://example.org/services => Services module 
http://example.org/oauth => Oauth module 
[...] 

我感到困惑的是,我的一些模塊將共享相同的底層數據庫資源(例如兩ProductsServices使用徵求意見相同的表)因此也是相同的數據庫模型。因此,我想知道:

我應該在哪裏把我的數據庫模型時,這些由多個模塊使用?

回答

3

請參見下面的文章:http://adam.lundrigan.ca/2011/09/module-dependencies-in-zf2/

您可以創建第三個模塊(例如:基地,主要)是對產品和服務模塊的依賴,也可以將模型添加到您的模塊之一併將該模塊用作另一個模塊的依賴項。

Module.php

/** 
* Get dependencies 
* 
* @return array 
*/ 
public function getDependencies() 
{ 
    return array(
     'BaseModule' => array(
      'version' => '>=0.1.0', 
      'required' => true 
     ), 
    ); 
} 
+0

可能是確實解決這個問題的一種方式。您是否看到將所有基本數據庫模型(即setter和getter)放在模塊中的任何問題,例如'DatabaseModels',如您所解釋的那樣,它將成爲其他模塊的依賴關係,並在每個相應模塊中擴展這些數據庫模型,更高級的業務邏輯進入他們? – Max

+0

我不會把所有的模型放在那裏,只要它們在所有模塊中是通用的。如果可能的話,將模型放入自己的模塊中 – Boby

+0

你可以做類似下面的ZF2模塊的東西[ZfcUser(https://github.com/ZF-Commons/ZfcUser)和[ZfcAcl(https://github.com/ZF-Commons/ZfcAcl)都擴展一個來自[ZfcBase](https://github.com/ZF-Commons/ZfcBase)的基本代碼,但在ZfcBase中沒有任何特定的代碼。 – Boby