开发者

How can i use code completion with fluent interface?

开发者 https://www.devze.com 2023-03-03 23:52 出处:网络
I w开发者_运维知识库onder how to use autocompletion with inherited class. For exemple i have this kind of code :

I w开发者_运维知识库onder how to use autocompletion with inherited class. For exemple i have this kind of code :

<?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();
    ?>

When i try to navigate with ctrl+click i can find a and b function but how can i reach c?

Thanks.


You have to use the correct PHPDoc style documentation for Eclipse to add autocompletion. In your @return Statement you have to indicate the actual type (name of your class) returned, not the variable:

<?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();
?>

Now in your example the problem is, that it won't really work with the subclass, because the documentation says that you e.g. for $object->a() return an instance of class A. Therefore autocomplete won't show the methods from class B (you can call them though).

0

精彩评论

暂无评论...
验证码 换一张
取 消