对于抽象函数,应该为抽象函数、已实现函数或两者定义phpdoc吗


For an abstract function, should the phpdoc be defined for the abstract function, the implemented function, or both?

有正确或标准的方法吗?

例如:

AbstractFoo.php:

abstract class AbstractFoo {
    /**
     * Does the phpdoc go here?
     */
    public function fooFunction();
}

Foo.php:

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

考虑以下问题:

  • 如果你把phpdoc放在抽象FooFunction()中,并控制并点击$foo->FooFunction(),你会得到Foo类的FooFunction(),它是未记录的,并且不能立即表明它正在实现一个抽象函数。如果显而易见的话,如果没有,就没有简单的方法可以在抽象函数中访问phpdoc

    • 确定对象是什么类
    • 定位它所继承的抽象类
    • 对该抽象类中的函数名执行"查找"
  • 如果您只将phpdoc放在子函数中,那么您将面临在n个继承类的子函数中复制phpdoc的问题。

  • 如果将phpdoc同时放在两者中,则抽象函数的phpdoc将变得没有目的,除非子类没有phpdoc,希望继承抽象的phpdoc。但即使在这种情况下,也没有简单的方法可以导航到抽象的phpdoc。

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