2010-09-17 54 views
0

當使用正常的架構(我想這就是所謂的基於控制器的架構),Zend公司建議使用下列文件夾結構(taken from here):文件夾結構基於模塊的Zend項目

<project name>/ 
     application/ 
      configs/ 
       application.ini 
      controllers/ 
       helpers/ 
      forms/ 
      layouts/ 
       filters/ 
       helpers/ 
       scripts/ 
      models/ 
      modules/ 
      services/ 
      views/ 
       filters/ 
       helpers/ 
       scripts/ 
      Bootstrap.php 
     data/ 
      cache/ 
      indexes/ 
      locales/ 
      logs/ 
      sessions/ 
      uploads/ 
     docs/ 
     library/ 
     public/ 
      css/ 
      images/ 
      js/ 
      .htaccess 
      index.php 
     scripts/ 
      jobs/ 
      build/ 
     temp/ 
     tests/ 

現在對於使用項目基於模塊的架構,而不是默認的基於控制器的架構,我無法找到推薦的文件夾結構。

  • 我知道會有一個模塊文件夾,其中的每個模塊都有自己的子文件夾(控制器,視圖,模型)。
  • 但我見過一個教程創建只有控制器和視圖(沒有模型),並在主(應用程序)模型文件夾中的所有模型。奇怪!
  • 此外,由於它是基於模塊的,不應該將主應用程序內容也移入它自己的模塊中嗎?如果要將它們移動到單獨的模塊中,那麼在應用程序級本身是否需要文件夾(控制器,視圖,模型)?

回答

2

這真的取決於你。就我個人而言,我將模塊特定的模型保留在各個模塊的模型目錄中,但在應用程序級別保留「常規」應用程序模型。例如,錯誤控制器會保存在應用程序/控制器中。

+0

我明白了。所以要驗證我的理解。即使使用基於模塊的體系結構,如果我將主應用程序本身移動到單獨的模塊(「默認」),只有很多我可以從主應用程序移動到默認模塊。我可以移動所有控制器(包括IndexController),除了ErrorController,因爲它應該保持應用程序範圍。 2)我想這回答了另一個問題:我應該刪除應用程序模型/視圖/控制器文件夾?答案是否定的,因爲即使使用基於模塊的體系結構,仍然有一些部分仍然留在主應用程序中。正確? – jblue 2010-09-17 19:22:29

+0

我同意所有這一點,'有'是一個強大的詞,雖然 - 有些人確實使用'默認'模塊,我敢肯定如果你想使用模塊特定的錯誤控制器是可能的;採埃孚是靈活的。 – 2010-09-17 20:12:23