sirve - self php
¿Debería usar @return self, esta o la clase actual? (4)
Tengo un método que devuelve el objeto actual, ¿cómo puedo documentar esto?
/**
* set something
*
* @return this
*/
public function setSomething(){
// ...
return $this;
}
¿O debería hacer @return self
o @return Current_Class_Name
?
Esta pregunta es bastante antigua, ¡pero solo quiero compartirla con todos!
AL MENOS para aquellos que usan NetBeans 8.1 ... esta notación hace que el autocompletado del código funcione bien en IDE:
/**
* Method that returns $this instance (using late state binding)
* @return static
*/
public function iWillReturnMyself ( ) {
return $this;
}
DIGO POR LO MENOS para usuarios de NetBeans8.1, pero también pueden funcionar en versiones anteriores u otros IDEs =]
Hay una Recomendación de Estándares PHP (PSR) actualmente en borrador (PSR-5) que propone @return $ esto se usa para indicar que se devuelve la misma instancia.
$ this, el elemento al que se aplica este tipo es la misma instancia exacta que la clase actual en el contexto dado. Como tal, este tipo es una versión más estricta de static ya que, además, la instancia devuelta no solo debe ser de la misma clase sino también la misma instancia.
Este tipo se usa a menudo como valor de retorno para los métodos que implementan el patrón de diseño de interfaz fluida.
Esta notación es utilizada actualmente por IDE populares como PhpStorm y Netbeans.
@return Current_Class_Name
definitivamente funcionará y es lo que prefiero.
@return self
puede funcionar bien con algunos programas también.
@return this
es malo porque este no es un nombre de tipo.
/**
* set something
*
* @return self
*/
public function setSomething(){
// ...
return $this;
}
Puede usar el tipo "self" como @param o @return ..
PHPDoc recomienda ''self'' para referirse a self en object ..
Fuente: http://www.phpdoc.org/docs/latest/references/phpdoc/types.html