对于抽象函数,是应该为抽象函数,实现函数还是两者定义phpdoc?

Bil*_*tin 7 php phpdoc

有没有正确或标准的方法来做到这一点?

例如:

AbstractFoo.php:

abstract class AbstractFoo {
    /**
     * Does the phpdoc go here?
     */
    public function fooFunction();
}
Run Code Online (Sandbox Code Playgroud)

Foo.php:

class Foo extends AbstractFoo {
    /**
     * Or does the phpdoc go here?
     */
    public function fooFunction(){
        // some implementation
    }
}
Run Code Online (Sandbox Code Playgroud)

请考虑以下问题:

  • 如果你把PHPDoc的在抽象FooFunction(),并控制+单击$foo->FooFunction(),您将在结束Foo类的FooFunction(),这是没有证件,并不会立即明显的,它的实现的抽象功能.如果很明显,没有简单的方法可以在抽象函数中找到phpdoc

    • 确定对象是什么类
    • 找到它继承的抽象类
    • 对该抽象类中的函数名称执行"查找"
  • 如果你只将phpdoc放在子函数中,那么你就会面临在n个继承类的子函数中复制phpdoc.

  • 如果你把phpdoc放在两者中,那么抽象函数的phpdoc就变得没用了,除非子类没有phpdoc,想要继承抽象的phpdoc.但即使在这种情况下,也没有简单的方法可以导航到那个抽象的phpdoc.

小智 4

您应该记录接口或抽象实现。否则,请使用 @inheritdoc/document 您的接口方法的实现。