Zend Framework 2 是否会继续在类的私有成员和方法前放置下划线?例如:
class blah {
private $_name;
private function _doSomethingToName()
{
}
}
我看到它们仍然存在于 ZF2 的开发版本中。
Zend Framework 2 是否会继续在类的私有成员和方法前放置下划线?例如:
class blah {
private $_name;
private function _doSomethingToName()
{
}
}
我看到它们仍然存在于 ZF2 的开发版本中。
可能是的,根据民意调查:
目前有 381 条回复:
- 57% 投票“是”(删除下划线)
- 38% 投票“否”(保留下划线)
- 4% 投票“没有意见”
来自zf2编码标准
函数和方法
函数名称必须只包含字母数字字符。不允许使用下划线。函数名称中允许使用数字,但不鼓励使用。...对于使用“private”或“protected”修饰符声明的对象上的方法,方法名称的第一个字符可以是下划线。这是方法名称中唯一可接受的下划线应用,并且不鼓励使用(因为它使重构为公共可见性变得更加困难)。声明为“public”的方法不应包含下划线。
http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards
是的,他们为什么不应该呢?这是一个惯例。
这也是其他面向对象语言中的约定。
查看这两个代码约定指南:
但是所有这一切都应该是一个团队约定,这对于 Zend 来说可能就是这样。我相信在编写代码时应该使用这些代码约定来澄清和保持一致性。对我来说,Zend 对私有成员使用下划线前缀可以节省大量时间,尤其是当我对某个类不太熟悉时。
我最近想知道这个问题,并搜索了整个 ZendFramework-2.1.4 源代码树以获得明确的答案。下划线约定似乎不再用于变量。整个项目中甚至没有一个以单个下划线开头的私有或受保护变量声明。以下三个文件中有少量变量以两个下划线开头,仅此而已。
\ZendFramework-2.1.4\library\Zend\View\Renderer\PhpRenderer.php \ZendFramework-2.1.4\library\Zend\View\Renderer\ConsoleRenderer.php \ZendFramework-2.1.4\library\Zend\Stdlib\AbstractOptions .php
这些文件中至少有一个包含以下注释:
注意:该类中的所有私有变量都以“__”为前缀。这是为了 * 将它们标记为内部实现的一部分,从而防止 * 与注入渲染器的变量发生冲突。
关于方法,我能够找到三个使用“私有函数_”的文件和 89 个使用“受保护函数_”来声明方法的文件。还有三个文件使用“私有静态函数_”和七个文件使用“受保护的静态函数_”。这些只是项目中方法声明总数的一小部分。
在 Zend Framework 2 中,这种约定似乎已死或即将消亡。
编辑:看起来 ZF2 codign 标准的这两部分清楚地说明了这一点。
http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-Variables http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-FunctionsandMethods
变量
变量名必须只包含字母数字字符。不允许使用下划线。变量名中允许使用数字,但在大多数情况下不鼓励使用数字。
对于声明为私有或受保护可见性的变量,变量名的第一个字符可以是单个下划线。这是变量名中唯一可接受的下划线应用,并且不鼓励使用(因为它使重构到公共可见性更加困难)。
函数和方法
函数名称必须只包含字母数字字符。不允许使用下划线。函数名称中允许使用数字,但不鼓励使用。
Function names MUST always start with a lowercase letter. When a function name consists of more than one word, the first letter of each new word MUST be capitalized. This is commonly called "camelCase" formatting.