3

有人可以为 ZF2 提出最佳的目录结构组织吗?例如我有:

  • 几个控制器助手,
  • 自定义视图 hwlpers
  • 其他库,如 PHPExcel
  • 自定义类
  • 身份验证、ACL 类
  • 事件处理程序等

所以这是最好的(读得很好的)目录组织。

4

1 回答 1

4

有两种结构:应用结构和模块结构。

应用

您的应用程序的默认和推荐目录结构如下:

config/
  autoload/
module/
public/
vendor/

有一个config/application.config.php文件,在config/autoload目录中你有应用程序特定的配置,它覆盖任何模块特定的配置。

module/您放置所有应用程序模块的目录中。如果您使用 3rd 方模块或制作了一些可重用的模块,则最好将它们放在vendor/目录中。这样,您就可以清楚地区分应用程序特定模块和非应用程序特定模块。

public/是您的网络根目录。在那里你有index.php,你可以把你的样式、脚本和其他资产放在那里。

示例:一个完美的示例是在目录中有一个PHPExcel目录vendor/

模块

模块具有默认和推荐的结构,如下所示:

MyModule/
  config/
  src/
    MyModule/
      Controller/
        Plugin/
      Form/
      Service/
      View/
        Helper/
  view/

你所有的 php 代码都进入src/. 因为src/遵循PSR-0标准,所以您的顶级命名空间 ( MyModule) 在src/目录中重复。在此目录下,您拥有所有模块代码。

就像 Zend Framework 2 ( Zend\Mvc\Controller\Plugin\SomePlugin) 中的助手一样,我会将它们放在Controller/Plugin目录中。对于视图助手,您有相同的:类似于Zend\View\Helper\SomeHelper我建议您将助手放在View/Helper目录中。

然后你就剩下“自定义类”、“auth、acl 类”和“事件处理程序,等等”。这真的取决于他们所做的工作。有时Listeners/我的模块源中有一个目录,事件侦听器所在的位置。Auth/Acl和身份验证也可以存储在Acl/目录中。这真的取决于具体情况,最重要的是你遵循 PSR-0 并且源被封装在一个模块中。

于 2012-11-07T15:11:41.913 回答