2016-03-25 38 views
4

是否有人能够详细解释Symfony *用来命名目录结构中文件夹和文件的标准?Symfony文件夹结构标准

MyBundle 
├─ Controller/     <-- 1) why singular? 
├─ Model/      <-- 2) why singular? 
├─ Resources/     <-- 3) why plural? 
│ ├─ config/     <-- 4) why the "c" is lowercase? 
│ ├─ translations/ 
│ ├─ views/     <-- 5) why the "v" is lowercase and views is plural? 
│ │ └─ Default/    <-- 6) Why uppercase? 
│ │  └─ my_view.html.twig <-- 7) Why lowercase and snake case? 
│ └─ public/ 
├─ Service/     <-- 8) why singular? 
└─ Tests/ 

这就引出了另一个问题:如果我想创建一个包含模型文件夹内ArchiveSection类的文件夹,我应该如何命名呢?

  • 型号/ ArchiveSections/
  • 型号/ ArchiveSection/
  • 型号/ archive_sections/

谢谢你!

*我正在使用Symfony 2.3。

+1

对于小写字母,我猜它意味着一个不包含类的文件夹。至于复数和'默认',好的问题。 – Twifty

回答

0

symfony框架没有严格的结构和体系结构目录规则。但是存在最佳实践和标准惯例。

在你的情况下,没有什么问题,你可以做你想要的。 似乎名称目录中的下划线不是非常标准的约定,但不是强制性的。

对于单数或多义的问题处理,似乎是symfony开发人员无法解答的惯例。例如:我我用我的服务目录命名为“服务”,我的所有代码都以这个名字完美运行。

1

查看docs谈论捆绑目录结构。

我会说只要记住,Resources目录结构必须遵循的标准,以获得一些自动注册视图路径和翻译文件在内核中。这同样适用于Command目录。

因为这是你如何希望它是,只知道目录结构应该重复symfony的部件结构,保持逻辑和可读性(一Twig目录创建树枝扩展或功能,一个Serializer目录来保存自定义的正规化,其余...)。

这与目录结构相关,因为它定义了你的类名称空间结构

+0

你好@贺,我知道我可以按我想要的方式命名我的文件夹(排除那些必须遵循“约定配置”原则的文件夹),我的问题更多地是关于Symfony标准结构(如果有的话),你知道吗他们为什么这样命名?谢谢。 – StockBreak

+0

这是在我的答案,基本上匹配symfony代码源中的组件结构。 – Heah

+0

实际上,“测试”和“测试”的用法,首先针对第二种中使用的特定测试类。 – Heah