如何使用流畅的界面使用代码完成?

时间:2011-05-06 15:25:01

标签: php eclipse ide phpdoc

我想知道如何使用继承类的自动完成。例如,我有这样的代码:

<?php
    class A {

        /**
         * @return $this
         */
        function a(){
            return $this;
        }

        /**
         * @return $this
         */
        function b(){
            return $this;
        }
    }

    class B extends A{
        function c() {
        }
    }

    $object = new b();
    $object->a()->b()->c();
    ?>

当我尝试使用ctrl + click导航时,我可以找到a和b功能,但我怎么能到达c?

感谢。

1 个答案:

答案 0 :(得分:3)

您必须使用Eclipse的正确PHPDoc样式文档来添加自动完成功能。在@return语句中,您必须指出返回的实际类型(类的名称),而不是变量:

<?php
    class A {

        /**
         * @return A
         */
        function a(){
            return $this;
        }

        /**
         * @return A
         */
        function b(){
            return $this;
        }
    }

    class B extends A{
        /**
         * @return B
         */
        function c() {
        }
    }

    $object = new B();
    $object->a()->b()->c();
?>

现在在你的例子中,问题是,它不能真正用于子类,因为文档说你例如for $ object-&gt; a()返回一个A类的实例。因此,自动完成不会显示B类的方法(你可以调用它们)。