2011-10-18 12 views
7

¿Cuál es la forma recomendada de documentar los parámetros de función o método cuyo valor se espera que sea una constante predefinida? Hasta ahora, uso el tipo de datos de la constante y agrego una pequeña explicación más adelante.Cómo documentar un parámetro que espera una constante

Ej:

<?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

se ve bien para mí tal como está, aunque probablemente preferiría tener dos métodos 'post()' y 'get()' y sortAsc() y 'sortDesc()' o hacer que las estrategias de solicitud y clasificación http sean accesibles a Foo. – Gordon

+1

Aquí hay una discusión sobre este tema: https://github.com/phpDocumentor/phpDocumentor2/issues/557 – artspb

Respuesta

5

considerando que se puede utilizar una clase conocida como la dataype en las etiquetas param y return, también esperaría que puedas usar una constante conocida. Cuando desee especificar múltiples opciones de tipo, solo delimite la lista con pipes. La modificación de su ejemplo:

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

Dado que el tipo de datos en este caso es un conocido valor interno a la clase, incluso podría funcionar sin el prefijo de nombre de clase:

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

He estado probando con un par de IDEs y phpDocumentor. Aparentemente, ninguno de ellos hará nada especial con el tipo de param (como crear enlaces o alimentar la lista de autocompletar). Así que supongo que no hay una forma estándar de hacerlo y cualquier método que elija no hará daño. Consideraré tu idea. –

-2

Here se encuentra información sobre cómo documentar constante utilizando phpdoc

const/definir significa lo mismo en php

+0

Lo siento, pero esa no es mi pregunta: quiero documentar un parámetro de función. (Y const/define son similares, pero no equivalentes, como sugiere.) –

+0

De acuerdo, he encontrado algo para usted [aquí] (http://stackoverflow.com/questions/3892063/phpdoc-class-constants- documentation) – user973254

+1

Esa es otra respuesta para la misma pregunta. Estaré encantado de aclarar cualquier parte de mi pregunta que no esté clara para usted, pero léala cuidadosamente primero. –

Cuestiones relacionadas