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

时间:2009-11-30 15:05:05

标签: php coding-style namespaces naming-conventions

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

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

3 个答案:

答案 0 :(得分:26)

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

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

答案 1 :(得分:5)

我认为你不能说现在已经建立了很多东西,但是有一个RFC为PEAR2讨论它:http://wiki.php.net/pear/rfc/pear2_naming_standards

我认为命名空间是变量的一种形式,因此应遵循与它们相同的约定。我基本上更喜欢lowercase_underscore的自由变量(而不是对象成员),所以对我来说最自然的是namespace\ClassName。这也符合其他语言中最流行的惯例。另一方面,可以对5.3之前的伪命名空间进行相同的论证,但这里的事实标准似乎是使用CamelCase。

答案 2 :(得分:1)

就个人而言,我喜欢编写类名称上层camelcase,类属性和方法,以较低的camelcase和类属性为前缀。

其他局部变量我也写了较低的camelcase而没有下划线前缀。对象实例总是写成uppper camelcase等。我真的不认为有最好的方法,你只需要与你的编码标准保持一致。这为您提供了通过代码更快地阅读的优势,它可以更快地了解在哪些代码行中发生的事情。