2012-11-18 18 views
23

Ci sono già 2 domande simili di questo tipo qui su SO, ma nessuna delle risposte sembra funzionare.Parametro PHPDoc opzionale

PHPDoc non sembra riconoscere parametri opzionali nelle mie funzioni come optional, ad esempio:

/** 
* Opens the connection and sets encoding 
* 
* @param string $encoding Encoding. 
*/ 
public function __construct($encoding='UTF-8') 
{ 
    $this->connect_mysqli(); 
    $this->set_encoding_mysqli($encoding); 
} 

Non dovrebbe riconoscere $ codifica come optional o mi sto perdendo qualcosa qui? Ho cercato di google e leggere la documentazione, ma tutto quello che ho trovato è:

Se non si sta indicando nel codice vero che il parametro è opzionale (tramite "$ paramname = 'un valore di default'"), poi dovresti menzionare nella descrizione del parametro che il parametro è facoltativo.

Quindi non vedo alcun problema con il mio codice, ma tutto quello che ottiene è nella documentazione: "($ stringa di codifica) __construct", nessun segno da nessuna parte che il parametro è facoltativo.

risposta

28

Strettamente parlando, PHP non conosce i "parametri opzionali", ma i parametri con valori predefiniti, che possono essere omessi quando viene chiamata la funzione o il metodo. OK, questo è alla fine un parametro opzionale, ma la vostra

@param string $encoding Encoding. 

è completamente corretto qui, perché il valore predefinito è una stringa. Che la documentazione cerca di dirvi è che si dovrebbe dici te come

@param string $encoding (optional) Encoding. 

Sono d'accordo con te, che una notazione come

__construct([$encoding]) 

o

__construct($encoding = 'UTF-8') 

sarebbe bello. È possibile inviare una segnalazione di bug

https://github.com/phpDocumentor/phpDocumentor2/issues?state=open

Aggiornamento: Realizzato, che questo già menzionato https://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues

+0

Ok, il mio male rispetto. Pensavo che PHPDocumentor avesse già incorporato questa funzione e pensavo che stavo facendo qualcosa di sbagliato. Rimarrà aperto per un po 'nel caso qualcuno si presenti presto con alcune nuove informazioni, se non accetta la tua risposta. Grazie –

+2

Supporto aggiunto all'ultima versione di PHPDocumentor. Vedere https://github.com/siad007/template.clean/commit/fe6f9c9b09799299e15b0a5c33c6325068de9609 – techdude

+1

Può essere aggiornato con la nuova annotazione? Nessuno dei link qui riportati ha risposte ovvie. – oskarth

Problemi correlati