2013-06-11 14 views
7

Dire che ho una funzione come questa:Come documentare un array di [tipo]?

function theFunction() { 
    $arr = array(); 
    for ($i=0;$i<10;$i++) { 
     $arr[] = new theObject($i); 
    } 
    return $arr; 
} 

Ho bisogno di documentare il tipo di ritorno della funzione. Naturalmente potrei semplicemente usare array, ma questo non fornisce tutte le informazioni che possono essere fornite e non dice allo sviluppatore molto sulla vera natura della funzione.

Come posso documentare il tipo "array di [tipo]" in PHPDoc?

+0

avete provato '@var ObjectType []'? – Robert

+0

@Robert no, ma la ricerca di quello ha dato un risultato! :) http://www.phpdoc.org/docs/latest/for-users/types.html#arrays – Keelan

+0

Vedere https://github.com/phpDocumentor/phpDocumentor2/issues/650 –

risposta

9

Dalla documentazione di phpDocumentor

Il valore rappresentato dal tipo può essere un array. Il tipo deve essere definito secondo il formato di una delle seguenti opzioni:

  1. specificato, viene data alcuna definizione dei contenuti della matrice rappresentata. Esempio: @return array

  2. specificato contenente un unico tipo, la definizione Type informa il lettore del tipo di ogni elemento dell'array. Quindi un solo tipo è previsto come elemento per un determinato array.

    Esempio: @return int[]

    prega di notare che misto è anche un tipo singolo e con questa parola chiave è possibile indicare che ogni elemento dell'array contiene qualsiasi tipo possibile.

  3. specificato contenente più tipi, la definizione Tipo informa il lettore del tipo di ciascun elemento di matrice. Ogni elemento può essere di uno qualsiasi dei tipi specificati. Esempio: @return (int|string)[]

    Nota
    molti IDE probabilmente non supportano ancora questa notazione.

+0

Per più tipi, PHPStorm sembra anche ok con 'int [] | string []' ma non lo sono certo che dovrebbe essere raccomandato su '(int | string) []'. – gapple

+1

Non penso che int [] | string [] significhi lo stesso di (int | string) []. Il primo rappresenta un array di elementi int o un array di elementi stringa. Quest'ultimo rappresenta un array che può contenere elementi di entrambi i tipi. –

1

Se mi ricordo bene, fornisci il tipo di reso e una descrizione, non puoi inserirlo nella descrizione?

/** 
* blah 
* @return array array of types 
*/ 
+0

Ecco cosa sto facendo ora , ma sarebbe più pulito usare il modo standard se esistesse :) – Keelan

+0

@CamilStaps Sì, suppongo che lo farebbe :) – Dale

0

In PHPDoc è possibile effettuare le seguenti operazioni per tipo membri di matrice hinting:

@var array<\My\Folder\ClassName>