有人能为ZF2提出最佳的目录结构组织吗?例如,我有:
- 几个控制器助手,
- 自定义视图助手
- 额外的库,如PHPExcel
- 自定义类
- Auth、ACL类
- 事件处理程序等
那么对于这些内容,最佳的(易读的)目录结构是什么。
有人能为ZF2提出最佳的目录结构组织吗?例如,我有:
那么对于这些内容,最佳的(易读的)目录结构是什么。
有两种结构:应用程序结构和模块结构。
应用程序
您的应用程序的默认和推荐目录结构如下:
config/
autoload/
module/
public/
vendor/
有一个 config/application.config.php
文件,位于 config/autoload
目录中,其中包含应用程序特定的配置,它会覆盖任何模块特定的配置。
在 module/
目录中,您可以放置所有的应用程序模块。如果您使用第三方模块或者自己制作了可重用的模块,最好将这些模块放在 vendor/
目录中。这样,您就可以清楚地区分应用程序特定模块和非应用程序特定模块。
public/
是您的 Web 根目录。您可以在此处放置 index.php
以及样式、脚本和其他资源。
示例:一个完美的示例是在 vendor/
目录中放置一个名为 PHPExcel
的目录。
模块
模块具有默认和推荐的结构,如下所示:
MyModule/
config/
src/
MyModule/
Controller/
Plugin/
Form/
Service/
View/
Helper/
view/
src/
目录中。由于src/
遵循PSR-0标准,您的顶级命名空间(MyModule
)将在src/
目录下重复出现。在此目录下,您可以放置所有模块代码。Zend\Mvc\Controller\Plugin\SomePlugin
)一样,我会将它们放在Controller/Plugin
目录下。对于视图辅助程序,您也可以采用相同的方式:类比于Zend\View\Helper\SomeHelper
,我建议您将辅助程序放在View/Helper
目录下。Listeners/
目录,其中包含事件侦听器。Acl和身份验证也可以存储在Auth/
和Acl/
目录中。这取决于情况,最重要的是遵循PSR-0和将源封装在模块中。