¿Hay alguna manera 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 función en JetBrains para declarar una matriz de objetos:
/**
* @return ClassName[]
*/
Pero esto solo funciona con el tipo de retorno de la función.
php
phpstorm
type-hinting
web-ide
kolypto
fuente
fuente
Respuestas:
/* @var ClassName $object */
es un comentario PHPDOC no válido y no se analiza en la versión actual de Web IDE. Utilice asteriscos dobles para que funcione:/** @var ClassName $object */
Además, se puede realizar anotaciones
$array
enforeach($array as $var)
con/** @var ClassName[] $array */
y$var
escribir será deducido automáticamente.fuente
Como ya se señaló, PhpStorm usará bloques phpdoc regulares:
/** @var ClassName $object */
Sin embargo, desde 2.1 también admite anotaciones Netbeans / Eclipse / Zend @var :
/* @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).
Edición: a partir de 2019, las anotaciones Netbeans / Eclipse / Zend @var parecen estar en su mayoría abandonadas. NetBeans 11 ya no los admite y, en general, no son compatibles con otros IDE. Sugiero usar la otra sintaxis.
fuente