Esiste una sintassi per documentare le funzioni che richiedono un singolo array di configurazione, piuttosto che singoli parametri?PHPDoc per array di argomenti a lunghezza variabile
sto pensando specificamente di librerie in stile CodeIgniter, che utilizzano un meccanismo simile a questo:
<?php
//
// Library definition
//
class MyLibrary {
var $foo;
var $bar;
var $baz;
// ... and many more vars...
/* Following is how CodeIgniter documents their built-in libraries,
* which is mostly useless. AFAIK they should be specifying a name
* and description for their @param (which they don't) and omitting
* @return for constructors
*/
/**
* @access public
* @param array
* @return void
*/
function MyLibrary($config = array()) {
foreach ($config as $key => $value) {
$this->$key = $value;
}
}
}
//
// Library usage:
//
// Iniitialize our configuration parameters
$config['foo'] = 'test';
$config['bar'] = 4;
$config['baz'] = array('x', 'y', 'z');
$x = new MyLibrary($config);
?>
Quindi la mia domanda è: esiste un modo supprted di documentare l'array di configurazione oltre la semplice puramente testuale descrizione? Specificare realmente un valore corretto @param [type] [name] [desc]
che consente a PHPDoc di analizzare valori utili?
Per inciso, CodeIgniter in realtà sovrascrive solo i propri valori con quelli passati attraverso l'array $ config come sopra, consentendo effettivamente di clobber membri privati. Non sono un fan, ma sono bloccato con esso.
Io lo eviterei se potessi, sfortunatamente le convenzioni di CodeIgniter richiedono questo tipo di utilizzo di array confuso piuttosto che, oh, vecchi parametri regolari. – meagar
@meagar: sì, ho capito/capito, ma non ho potuto resistere ^^ (e questo potrebbe essere utile se qualcun altro, un giorno, arriva su questa domanda/risposta) –
Questo è simile a come lo faccio. PHPDoc prenderà la lista e la aggiungerà alla documentazione come qualsiasi altra stringa, quindi è meglio di niente. PDT non può dare un senso a questo però. Saprà solo che è un array. – Gordon