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

到目前为止,我已经看到了许多不同的命名约定用于PHP命名空间。有些人使用,有些人使用,有些人甚至使用Java约定作为包名称:。PascalCase\Just\Like\For\Classesunderscored\lower_case\namescom\domain\project\package

问题很简单 - 这些(或其他)公约中的任何一个都可以称为完善的公约吗?为什么?Zend等权威机构或知名PHP框架的开发人员是否推荐了它们中的任何一个?


答案 1

由许多不同的 PHP 框架和项目的贡献者组成的 PHP 标准工作组提出了以下建议,用于适当的命名空间使用:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md


答案 2

我不认为你可以说在这一点上有什么已经建立起来的,但是有一个RFC在为PEAR2讨论它:http://wiki.php.net/pear/rfc/pear2_naming_standards

我的看法是,命名空间是变量的一种形式,因此应该遵循与它们相同的约定。我基因上更喜欢自由变量(而不是对象成员),所以对于我的口味来说最自然的是。这也符合其他语言中最普遍的约定。另一方面,对于 5.3 之前的伪命名空间,也可以提出同样的论点,但在这里,事实上的标准似乎正在使用 CamelCase。lowercase_underscorenamespace\ClassName


推荐