PSR-2。何时大写目录?

时间:2015-08-04 17:37:13

标签: php psr-0 psr-4 psr-2 psr-1

据我所知,根据PSR-2标准,我们应该大写包含类的目录名。但是如果目录还包含一些其他文件,例如样式和脚本,怎么办?

假设我有一个插件目录,每个插件都可以包含模板和其他内容:

plugins
  PluginName // lowercase?
    PluginName.php // Contains base class "PluginName"
    templates
      home.tpl
    css
      css.css
    js
      js.js
  PluginName2
    ....

这种结构是否正确?

2 个答案:

答案 0 :(得分:4)

您可以随意命名目录。

但是,如果您打算使用PSR-0或PSR-4自动加载PHP类,则相关类名称部分所触及的目录名称必须完全匹配。

PSR-2不做任何假设,也不会给出类名或命名空间必须具有的规则和规则。

PSR-1在chapter 3中声明:“类名必须在StudlyCaps中声明。”但是,这仅影响包含此类的文件的文件名。如果您正在使用PSR-4自动加载,如果为每个包含代码的目录定义Name\Space -> directory/for/that/namespace的整个映射,您仍然可以避免在路径中使用命名空间的任何部分。

PSR-1没有关于命名空间格式的任何规则,因此您也可以避免在那里使用大写字母,因此避免在目录路径中使用大写字母。

请注意,在将名称空间/类名映射到文件系统路径和文件时,PSR-0和PSR-4自动加载都区分大小写。所以最后,你最终会得到一个区分大小写的文件系统布局。

另请注意,大多数名称空间也使用StudlyCaps,我会考虑使用小写字母,这是不寻常的。

答案 1 :(得分:1)

在PHP中没有明确定义的结构应该是什么样的。

我甚至不认为目录名必须大写。

但是,任何包管理器(Composer)都可以处理插件或任何依赖项吗?

据我所知,你的结构看起来非常好。