php - PSR-2。什么时候大写目录?

标签 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
    ....

这个结构是否正确?

最佳答案

您可以随意命名您的目录。

但是,如果您打算使用 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,我认为使用小写字母是不常见的。

关于php - PSR-2。什么时候大写目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31815777/

相关文章:

php - 如何将每个tr的html表数据插入到sql表中

Java 注册表类?

php - Composer 不生成自动加载器信息 (autoload_namespaces.php)

php - 同一文件上的函数和类 : undefined function

php - Laravel 错误 'ReflectionException' - 'Class App\Http\Kernel does not exist'

php - PSR-0 和 PSR-4 有什么区别?

php - PS-4 PHP 包 - 主文件夹类无法访问子文件夹类 - 命名空间

php - HTML/CSS - 表格分页符不起作用(打印)

javascript - 自动提交表单

php - 具有许多路径的 PSR-0 SplClassLoader