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?