2010-09-17 106 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