Per motivi di facilità di manutenzione E completamento automatico della classe IDE e accenno ai membri, ho usato PHPDoc nel mio progetto. Dato questo esempio di classe:Corretto modo di documentare la classe in Netbeans PHP
class my_class {
public $id;
public $name;
public $number;
public function __construct() {
//Do something
}
public function Rename($name) {
$this->name = $name;
}
}
io preferirei di documentare tutte le proprietà ($id
, $name
e $number
) con la documentazione di classe stessa, che è al di sopra della dichiarazione di classe, e quindi inserire la documentazione per i metodi (se necessario) di cui sopra ogni metodo Ecco quello che in ultima analisi, voglio la mia classe a guardare come:
/**
* Represents an example class for Stackoverflow
*
* @property int $id The id of the object
* @property string $name The name of the object
* @property int $number The number of the object
*/
class my_class {
public $id;
public $name;
public $number;
public function __construct() {
//Do something
}
/**
* Renames the object
* @param string $name Name to rename object
*/
public function Rename($name) {
$this->name = $name;
}
}
Questo è esattamente quello che preferiscono avere la documentazione, tuttavia completamento automatico Netbeans' non funziona correttamente, in quanto elenca ogni proprietà due volte. Ad esempio, se inizio a digitare $my_class_object->i
il completamento automatico elencherà due proprietà $ id: una come descritto nel mio PHPDoc, e un'altra è descritta come una variabile sconosciuta con "PHPDoc Not Found".
C'è una soluzione che risolve il problema di Netbeans - aggiungi un blocco PHPDoc @var
sopra ogni proprietà, tuttavia penso che inutilmente ingombra la mia classe, specialmente alcune delle mie classi che hanno 10+ proprietà.
C'è una [buona] soluzione per entrambi i miei problemi (documento pulito, corretto suggerimento Netbeans), o sto andando su questo in modo errato?
Non era a conoscenza del modello docblock - anche se occasionalmente ho bisogno di fornire commenti aggiuntivi sull'uso delle variabili, questo dovrebbe aiutarmi a trovare una via di mezzo per mantenere ben documentato il codice, mantenendo allo stesso tempo il completamento automatico fino allo spegnimento. Grazie! – Mattygabe
È possibile combinare i modelli di docblock con i docblock effettivi, in modo che le informazioni del modello vengano "aggiunte" ai singoli docblock. Nell'esempio sopra, potresti ancora inserire un docblock specifico su $ id e un altro su $ numero, con altre informazioni invece del tag var condiviso. Nei documenti risultanti, entrambe le variabili avrebbero raccolto il tipo di dati int. – ashnazg