PHP名称空间是否有完善的命名约定?

ryhaxcpt  于 2023-02-03  发布在  PHP
关注(0)|答案(4)|浏览(130)

到目前为止,我已经看到了许多不同的PHP命名空间命名约定,有些人使用PascalCase\Just\Like\For\Classes,有些人使用underscored\lower_case\names,有些人甚至使用Java包命名约定:com\domain\project\package.
问题很简单--这些(或其他)约定中有哪一个可以称为成熟的吗?为什么?它们中有哪一个是由权威机构(如Zend或著名PHP框架的开发人员)推荐的吗?

ehxuflar

ehxuflar1#

由许多不同PHP框架和项目的贡献者组成的PHP标准工作组提出了以下适当使用名称空间的建议:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

ruarlubt

ruarlubt2#

我不认为你可以说在这一点上有什么很好的建立,但有一个RFC讨论它的PEAR2:http://wiki.php.net/pear/rfc/pear2_naming_standards
我认为名称空间是变量的一种形式,因此应该遵循与变量相同的约定。我通常更喜欢用lowercase_underscore表示自由变量(相对于对象成员),所以对我来说最自然的是namespace\ClassName,这也符合其他语言最流行的约定,另一方面,对于5.3之前的伪名称空间也可以有同样的说法,但这里实际上的标准似乎是使用CamelCase。

pkbketx9

pkbketx93#

就我个人而言,我喜欢写大写的类名,写小写的类属性和方法,写前缀为下划线的类属性。
其他的局部变量我也写小写的驼峰,没有下划线前缀。对象示例总是写大写的驼峰等等。我真的不认为有一个最好的方法,你只需要和你的编码标准保持一致。这给了你更快地阅读你的代码的优势,它应该给你一个更快的洞察力,在代码行发生了什么。

odopli94

odopli944#

有些人可能会说PascalCase except Acronyms/Initialisms是首选,因此,例如,以下是合适的版本:

  • " curl "
  • ' curl 响应'
  • 'HTTP状态代码'
  • '网址'
  • 'BTreeMap'(B树Map)
  • "Id"(标识符)
  • "ID"(身份证明文件)
  • 'Char'(字符)
  • 'Intl'(国际化)
  • "雷达"(无线电探测和测距)

来源:位于wiki.php.net
扩展编码标准,明确指定在编写用户级类名时如何处理缩写和首字母缩写/首字母缩写。当前规则为:
应为类指定描述性名称。尽可能避免使用缩写。类名中的每个单词应以大写字母开头,不带下划线分隔符(CamelCaps以大写字母开头)。类名应以"父集"的名称(例如,扩展的名称)作为前缀...
资料来源:www.example.comgithub.com
虽然有人说应避免缩写,但没有说明如果使用缩写该怎么办;特别是在首字母缩写/首字母缩写的情况下。现在基本上有三种可能的选择:

  1. PascalCase except Acronyms/Initialisms-这是大多数用户级类名的编写方式,它与许多其他编程语言的方法相匹配;
  2. Always PascalCase-基本上是PSR-1定义的,但是,它会使大多数当前存在的用户级类名无效;
  3. Do Nothing-当然,这自动意味着任何方法都是允许的,社区将继续围绕这个主题进行讨论。
    ...
    "我们应该使用什么样的类命名风格?"(最终结果):
  • 除首字母缩写外的PascalCase:15
  • 始终使用PascalCase:11

来源:位于wiki.php.net

PSR-1

1.命名空间和类名
...
类名必须在StudlyCaps中声明。
...
资料来源:www.example.comphp-fig.org

相关问题