【问题标题】:zend framework 2 underscore privateZend 框架 2 强调私有
【发布时间】:2011-04-14 11:11:18
【问题描述】:

Zend Framework 2 是否会继续在类的私有成员和方法前添加下划线?例如:

class blah {
    private $_name;

    private function _doSomethingToName()
    {
    }
}

我看到它们在 ZF2 的开发版本中仍然存在。

【问题讨论】:

    标签: php coding-style zend-framework2 private


    【解决方案1】:

    可能是的,根据the poll

    目前有 381 条回复:

    • 57% 投票“是”(删除下划线)
    • 38% 投票“否”(保留下划线)
    • 4% 投票“没有意见”

    【讨论】:

    • 感谢您的统计数据。所以我想我们只是坐下来看看。有谁知道 beta 版本还有多远?
    • @waigani 只需克隆开发存储库,看看它有多远。
    【解决方案2】:

    来自 zf2 编码标准

    函数和方法

    函数名称必须只包含字母数字字符。不允许使用下划线。函数名称中允许使用数字,但不鼓励使用。 ... 对于使用“private”或“protected”修饰符声明的对象上的方法,方法名称的第一个字符可以是下划线。这是方法名称中唯一可接受的下划线应用,并且不鼓励这样做(因为它使重构到公共可见性更加困难)。声明为“public”的方法不应包含下划线。

    http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards

    【讨论】:

      【解决方案3】:

      是的,为什么不呢?这是一个惯例。

      【讨论】:

      • 为什么不呢?它几乎没用而且看起来很丑:-) 当你使用像 Zend 这样的大型框架时,你也使用了一个 ide,它能够以漂亮的图像向你展示私有和受保护的函数。
      • @ArneRie 好吧,总有一次你没有 ide 并且必须解决一些问题。在我看来,由于 IDE 的功能而以一种方式编写代码是非常糟糕的做法。
      • @Iznogood 函数前面是否还有 protected/public 关键字。请给我一个使用下划线的充分理由!
      • @ArneRie 如果你浏览一个方法中的一些代码,你可以直接看到其他方法是私有的还是公有的,而不需要检查方法本身。
      • @ArneRie 蒂姆说了什么。而且您知道您不必遵循这些准则。如果你想使用 files1.php 到 files999.php 和名为 hello123 到 hello999 的变量,你可以随意这样做。过一段时间你就会明白为什么约定是一件好事。
      【解决方案4】:

      这也是其他面向对象语言的约定。

      查看以下两个代码约定指南:

      但是所有这一切都应该是一个团队约定,这可能是 Zend 的方式。我相信在编写代码时应该使用这些代码约定来澄清和保持一致性。对我来说,Zend 对私有成员使用下划线前缀可以节省大量时间,尤其是当我对某个类不太熟悉时。

      【讨论】:

        【解决方案5】:

        我最近想知道这个问题,并搜索了整个 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 代码标准的这两部分清楚地说明了这一点。

        http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-Variables http://framework.zend.com/wiki/display/ZFDEV2/Coding+Standards#CodingStandards-FunctionsandMethods

        变量

        变量名称必须只包含字母数字字符。不允许使用下划线。变量名中允许使用数字,但在大多数情况下不鼓励使用。

        对于声明为私有或受保护可见性的变量,变量名的第一个字符可以是单个下划线。这是变量名中唯一可接受的下划线应用,不鼓励使用(因为它使重构为公共可见性变得更加困难)。

        函数和方法

        函数名称必须只包含字母数字字符。不允许使用下划线。函数名称中允许使用数字,但不鼓励使用。

        函数名称必须始终以小写字母开头。当函数名包含多个单词时,每个新单词的第一个字母必须大写。这通常称为“camelCase”格式。

        【讨论】:

          猜你喜欢
          • 2011-04-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-08-04
          • 2013-05-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多