有3种重要的命名约定:




对于变量来说,带下划线的似乎是开发人员使用最多的,所以我会坚持下去。我认为函数是相同的。

但是类和方法名称呢?开发人员最常使用这3种方法中的哪一种? (个人而言,方法是3.,类是2.)

请不要发布“使用您认为正确的东西”之类的东西,因为我正在编写的代码是其他开发人员的API,并且我想采用最流行的编码风格:)

评论

我看到您已经标记了问题php,但您可能应该在询问的上下文中更明确。这个问题在Objective-C中很容易回答,但在许多其他语言中则不可能回答。我不确定PHP是否已建立标准,但是知道您是否将Q限制为该语言将有助于人们回答。

AS_SOMEONE_FORCED_TO_WORK_IN_C_I_SEE_THIS_CONVENTION_QUITE_OFTEN

对于PHP标准问题,我强烈建议您查看PSR标准集,以解决此问题以及其他样式问题。 php-fig.org/psr/psr-1

#1 楼

大约一年前,我有同样的问题,所以我自己看了一些代码。这是我发现的(顺便说一下,常数在每个项目中都是ALL_CAPS):

 ╔═══════════════════════╦═════════════╦════════════╦══════════════╦════════════╦════════════╗
║      PHP Project      ║   Classes   ║  Methods   ║  Properties  ║ Functions  ║ Variables  ║
╠═══════════════════════╬═════════════╬════════════╬══════════════╬════════════╬════════════╣
║ Akelos Framework      ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ CakePHP Framework     ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ CodeIgniter Framework ║ Proper_Case ║ lower_case ║ lower_case   ║ lower_case ║ lower_case ║
║ Concrete5 CMS         ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ Doctrine ORM          ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ Drupal CMS            ║ PascalCase  ║ camelCase  ║ camelCase    ║ lower_case ║ lower_case ║
║ Joomla CMS            ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ modx CMS              ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ lower_case ║
║ Pear Framework        ║ PascalCase  ║ camelCase  ║ camelCase    ║            ║            ║
║ Prado Framework       ║ PascalCase  ║ camelCase  ║ Pascal/camel ║            ║ lower_case ║
║ SimplePie RSS         ║ PascalCase  ║ lower_case ║ lower_case   ║ lower_case ║ lower_case ║
║ Symfony Framework     ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
║ WordPress CMS         ║             ║            ║              ║ lower_case ║ lower_case ║
║ Zend Framework        ║ PascalCase  ║ camelCase  ║ camelCase    ║ camelCase  ║ camelCase  ║
╚═══════════════════════╩═════════════╩════════════╩══════════════╩════════════╩════════════╝
 


因此,看完所有这些之后,我决定选择:


全局函数)
ClassName


评论


问题是某些框架比其他框架更受欢迎。例如,Zend是最受欢迎的框架之一,但使用camelCase变量。要真正了解大多数PHP开发人员的需求,您必须按流行度对框架进行加权,或者只是基于github或类似的东西进行度量。

–内森·美林(Nathan Merrill)
17年7月26日在20:20

在所有这些框架中,变量都不会以大写字母开头吗?即使引用一个类对象?

–亚当
17年12月28日在16:53

@Adam,关于变量,我没有发现任何以大写字母开头的内容。请注意,我只浏览了每个库的代码(库中各个部分的10至20个文件)。可能有一些,但我没有注意到。随时检查一下,让我们知道您找到了什么。 :)

–程序员
18年1月2日在14:41

@Adam个人,我看到的唯一以大写字母开头的局部变量的地方是在主要基于Microsoft技术构建的项目中

–乔纳森
18年9月13日在13:32

既然您花了所有时间来创建此表。谢谢。

– ed22
19-10-14在9:49

#2 楼

没有“最流行的编码样式”之类的东西,这完全取决于您团队的惯例和个人喜好。由于您是针对开发人员的,因此您应该针对您的平台研究流行的约定,并遵循您认为更方便,易读且更接近您的个人风格的约定。对于PHP,一组流行的命名约定是Zend Framework的。

与选择的命名约定保持一致比该约定本身更重要。

评论


我对自己的想法没有更多的描述性。

–SeçkinSavaşçı
2012年5月19日15:17

最后一句话+1。

–拉杜(Radu Murzea)
2012年5月19日15:42

强烈同意你们所有人。到目前为止,这是最好的答案。我还要为最后一句话再加上+1。

–朱利奥·马尔基(Julio Marchi)
19年8月12日在19:54

#3 楼

尽管它可能不像Java版本那样普遍,但是遵循Apache PHP样式指南肯定不会受到伤害。对于命名约定:


命名:FunctionNamesLike,$ localVariableName,$ objectVariable,
ClassNamesLike,MethodNamesLike,CONSTANTS_LIKE_THIS。全局名称
(类,函数,变量,定义)必须加前缀,以防止与PHP本身命名冲突。这种方法包括防止与PHP冲突或可能冲突的前缀。除了常量之外,
除非您模拟名称空间,否则请防止在名称中使用下划线,并且
确保一旦PHP具有名称空间(以及对象变量的
当然),便可以切换到实际名称空间。 >

,其后的类和方法名称为PascalCased

这里还列出了许多其他合理的样式指南。多数人似乎都同意类名应为PascalCased,但包括MIT样式指南在内的某些类则应指出方法应为camelCased。接受以上答案。

#4 楼

我们有一个怪异的系统,其中所有东西都有自己的约定:


ClassesAreLikeThis。

#5 楼

我个人发现在对变量进行编码时,camelcase更为自然,但是由于PHP中的变量区分大小写,因此在代码中寻找您忘了创建camelcase的变量并不是一件有趣的事,因此我始终对变量使用大写字母大小写。

尽管约定确实是可变的,但在有人对变量使用了驼峰的情况下进行编码,并尝试确保始终对THAT变量使用约定,这会令人沮丧。