2011-10-18 14 views
7

Qual è il modo consigliato per documentare la funzione oi parametri del metodo il cui valore è previsto essere una costante predefinita? Finora, uso il tipo di dati della costante e aggiungo una piccola spiegazione in seguito.Come documentare un parametro che si aspetta una costante

Esempio:

<?php 

class Foo{ 
    const METHOD_GET = 'get'; 
    const METHOD_POST = 'post'; 

    /** 
    * Load a new foo 
    * 
    * @param string $method HTTP method to use (either Foo::METHOD_GET or Foo::METHOD_POST) 
    */ 
    public function load($method=Foo::METHOD_POST){ 
     // ... 
    } 

    /** 
    * Sort current foo 
    * 
    * @param int $sort_order Sort order (either SORT_ASC or SORT_DESC) 
    */ 
    public function sort($sort_order=SORT_ASC){ 
     // ... 
    } 
} 
+0

guarda bene a me come è, anche se probabilmente preferirei avere due metodi 'post()' e 'get()' e sortAsc() e 'sortDesc()' o rendere passibili le strategie http e le strategie di ordinamento oggetti esterni a Foo. – Gordon

+1

Ecco una discussione su questo argomento: https://github.com/phpDocumentor/phpDocumentor2/issues/557 – artspb

risposta

5

Dato che è possibile utilizzare una classe nota come il dataype nei tag param e return, mi aspetto anche che tu possa usare una costante conosciuta. Quando si desidera specificare più opzioni di tipo, è sufficiente delimitare l'elenco con le pipe. Modificando il tuo esempio:

/** 
* Load a new foo 
* 
* @param Foo::METHOD_GET|Foo::METHOD_POST $method HTTP method to use 
*/ 
public function load($method=Foo::METHOD_POST){ 
    // ... 
} 

Dal momento che il tipo di dati, in questo caso è un noto valore interno-to-the-class, potrebbe anche funzionare senza il prefisso nome di classe:

* @param METHOD_GET|METHOD_POST $method HTTP method to use 
+0

Ho provato con un paio di IDE e phpDocumentor stesso. Apparentemente, nessuno di loro farà qualcosa di speciale con il tipo param (come la creazione di collegamenti o l'alimentazione della lista di completamento automatico). Quindi immagino che non ci sia un modo standard per farlo e qualunque metodo io scelga non danneggerà. Prenderò in considerazione la tua idea. –

-2

Here trova informazioni su come documentare costante utilizzando phpdoc

const/define significa lo stesso in php

+0

Scusa ma non è una mia domanda: voglio documentare un parametro di funzione. (E const/define sono simili ma non equivalenti come suggerisci.) –

+0

Ok, ho trovato qualcosa per te [qui] (http://stackoverflow.com/questions/3892063/phpdoc-class-constants-documentation) – user973254

+1

Questa è un'altra risposta per la stessa domanda. Sarò lieto di chiarire qualsiasi parte della mia domanda non ti sia chiara, ma per favore leggi attentamente prima. –

Problemi correlati