Php PSR-2。何时将目录大写?

Php PSR-2。何时将目录大写?,php,psr-0,psr-4,psr-2,psr-1,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

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

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

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

这个结构正确吗?

在PHP中没有明确定义结构的方式

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

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


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

您可以随意命名目录

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

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

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

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

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


还注意到大多数命名空间也使用StasyLCAPS,我会考虑使用小写字母是不寻常的。

PSR-4“标准”只是关于包含脚本的非单一路径。如何构造您的资产不是它的一部分。通常,您不希望在类资源中混入非PHP文件。“PSR-2”是的,混合是个坏主意,但在这种情况下插件是“模块”,每个单元提供一个完整的functionality@ymakux请您参考一下“我们应该大写包含类的目录名”