php / Phpdoc - $ dönüş örneği bu sınıf @?

0 Cevap php

Benim PHPDoc yılında "cari sınıfının bir örneğini döndürür" olarak nasıl bir yöntem işaretlerim?

Aşağıdaki örnekte benim IDE (Netbeans) o setSomething daima bir foo nesnesini döndürür göreceksiniz.

Ama bu doğru değil eğer ben ölçüde nesne - bu ikinci örnekte bir bar çıkmamaya bir foo nesne olan $this dönersiniz.

class foo {
    protected $_value = null;

    /**
     * Set something
     *
     * @param string $value the value
     * @return foo
     */
    public function setSomething($value) {
        $this->_value = $value;
        return $this;
    }
} 

$foo = new foo();
$out = $foo->setSomething();

Bu nedenle iyi - setSomething a foo verir - ancak aşağıdaki örnekte, bu döner bir bar ..:

class bar extends foo {
    public function someOtherMethod(){}
}

$bar = new bar();
$out = $bar->setSomething();
$out->someOtherMethod(); // <-- Here, Netbeans will think $out
                         // is a foo, so doesn't see this other
                         // method in $out's code-completion

... Benim için bu çözmek için harika olurdu, kod tamamlama büyük bir hız onaydır.

Herkes, daha iyi PHPDoc ile bu belgeye uygun bir şekilde akıllı bir hile var ya?

0 Cevap