JetBrains WebIDE: ¿Sugerencia de tipo variable de PHP?
-
08-07-2019 - |
Pregunta
¿Hay alguna forma de insinuar a WebIDE que una variable tiene algún tipo? Tengo que iterar una matriz de objetos, y no hay autocompletado disponible. Esto ayuda en ZendStudio:
/* @var ClassName $object */
Sé que hay una característica en JetBrains para declarar una matriz de objetos:
/**
* @return ClassName[]
*/
Pero esto solo funciona con el tipo de retorno de la función.
Solución
/ * @var ClassName $ object * /
es un comentario PHPDOC no válido y no se analiza en la versión actual de Web IDE. Use asteriscos dobles para que funcione:
/** @var ClassName $object */
Además, puede anotar $ array
en foreach ($ array como $ var)
con / ** @var ClassName [] $ array * /
y el tipo $ var
se deducirán automáticamente.
Otros consejos
Como ya se señaló, PhpStorm usará bloques phpdoc regulares:
/** @var ClassName $object */
Sin embargo, desde 2.1 también admite Netbeans / Eclipse / Zend @var anotaciones :
/* @var $object ClassName */
Tenga en cuenta que el comentario comienza con / *
en lugar de / **
(por lo tanto, no aparecerá si genera documentación real con phpdoc). Además, los argumentos se intercambian, aunque PhpStorm acepta cualquier orden:
/* @var ClassName $object */
Por último, pero no menos importante, pueden preceder a casi cualquier línea de código arbitraria (técnicamente, los bloques phpdoc están restringidos a ciertos elementos).