2010-04-26 13 views
17

Uso varias matrices asociativas en mi aplicación PHP y estoy usando documentos PHP o para comentar mis fuentes. Realmente nunca especifiqué comentarios para las matrices en una matriz, pero ahora necesito hacer eso y no sé cómo.Combinaciones asociativas de comentarios en PHP Documentor

$array = array('id' => 'test', 'class' => 'tester', 'options' => array('option1' => 1, 'option2' => 2)) 

¿Cómo comentar esta matriz en el camino correcto para @var y @param comentarios? que podía hacer esto así, pero no sé si esto es correcto:

@param string $array['id'] 
@param string $array['class'] 
@param int $array['options']['option1'] 

Pero cómo hacer esto para la parte @var?

Respuesta

29

No puede documentar cada clave, pero you can tell phpDocumentor what type it is.

se podría hacer algo como esto:

/** 
* Form the array like this: 
* <code> 
* $array = array(
* 'id'  => 'foo',   // the id 
* 'class' => 'myClass',  // the class 
*); 
* 
* </code> 
* 
* @var array[string]string 
*/ 
$array; 
+0

gracias por su ayuda;) – Abenil

+2

¿Se ha confirmado que esto funciona con autocompletar/intellisense en cualquier IDE, me pregunto? De acuerdo con [phpDoc ABNF para definiciones de tipos] (http://www.phpdoc.org/docs/latest/for-users/types.html#abnf), no se permite especificar un tipo para el índice de matriz. Y especifica array como '@var string []' (el componente 'array' solo se supone que está presente para matrices" no especificadas "). – Sepster

+0

@Sepster No creo que la mayoría de los IDEs sean lo suficientemente inteligentes como para reconocer esto, desafortunadamente. Su kilometraje puede variar, pero incluso encuentro que la implementación de Zend Studio es un poco escasa cuando se trata de este tipo de conciencia de tipo accute. –

8

me gustaría ver en el WordPress Inline Documentation Reference para obtener algunos consejos, aunque no es actualmente integral.

Uso @param o @var o @property, lo que sea apropiado en su contexto

Según estas instrucciones, es posible documentar su matriz asociativa como esto:

/** 
* @property array $my_array { 
*  An array of parameters that customize the way the parser works. 
* 
*  @type boolean $ignore_whitespace Whether to gobble up whitespace. Default true. 
*  @type string $error_level What the error reporting level is. Default 'none'. 
*        Accepts 'none', 'low', 'high'. 
* } 
*/ 
+1

Esta notación para documentar las estructuras de matriz nunca se ha convertido en una especificación PHPDoc oficial a pesar de una discusión seria en 2013-14 sobre cómo agregarlo. –

+1

Parece ser una discusión relacionada en https://github.com/phpDocumentor/phpDocumentor2/issues/650 –

Cuestiones relacionadas