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

时间:2016-05-03 00:15:11

标签: php phpdoc

是否有正确或标准的方法来执行此操作?

例如:

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。

1 个答案:

答案 0 :(得分:3)

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