在评论中注明方法的首选方法是什么?

时间:2009-06-11 16:55:35

标签: php naming-conventions comments naming comment-conventions

有时在评论时必须引用另一种方法。这里是PHP的一些例子:

class A
{
    /**
     * @see B::bar
     */
    public function foo()
    {
        B::bar();
    }
}

class B
{
    public static function bar()
    {
        // ...
    }
}

那么如果类bar中存在非静态方法B怎么办? 在评论中命名其他方法的最佳方法是什么?

修改

PHP手册似乎使用mysqli->affected_rows以及PDO::beginTransaction。但它没有包括方法名称后面的括号。什么是亲和骗局?我的意思是很明显,一个方法后跟括号,所以为什么不留下它们呢?

提前谢谢!

4 个答案:

答案 0 :(得分:1)

我会写:

class A {
    // see B::bar()
    public function foo() {
        B::bar();
    }
}

关于我的各种变化,我最坚定的意见是信箱评论是魔鬼的工作。关于静态与静态的关系,我理解并使用B::bar()来引用函数定义以用于会话目的,无论bar()是否为静态。

上面的示例当然仅用于说明目的,因为如果实际上有一个函数A::foo()除了调用B::bar()之外什么都不做,我就不会包含注释,因为如果这个人读我的代码是个白痴,我不想帮助他。

答案 1 :(得分:1)

您可以使用->运算符来引用实例/对象方法而不是类方法。 PHP.net也在他们的手册中做到了这一点(例如,参见MySQLi class)。

答案 2 :(得分:1)

在我看来,你的榜样已经足够了。不过,你应该将B :: bar称为B :: bar()。

您可能需要考虑使用@uses php-doc tag,它将在为B :: bar()生成的文档中自动创建@usedby引用,并指向A类。

/**
 * @uses B::bar()
 */

就文档而言,静态方法与@uses,@usedby或@see无关,只与@static有关。 @uses标记中的静态表示法只是传达范围以查找bar()方法,而不是表示@static。

答案 3 :(得分:0)

phpDocumentor的文档似乎暗示你可以使用像

这样的东西
class A
{
  /**
   * @see B
   * @see function bar()
   */
  public function foo()
  {
    // ...
  }
}

同样来自phpDocumentor manual

  

@uses与@see非常相似,请参阅   有关详细信息,请参阅@see的文档   格式和结构。 @uses标签   与@see有两点不同。 @see是   单向链接,意思是   包含@see标记的文档   包含指向其他的链接   文档。 @uses标签   自动创建虚拟   其他文档中的@usedby标记   链接到文档   包含@uses标记。其他   单词,它就像@see,除了   返回链接会自动添加。