2011-12-09 13 views
7

¿Es una buena práctica incluir espacios de nombres para las clases en las anotaciones @param? Sé que phpdoc no admite espacios de nombres, pero ¿cómo actuarán otras herramientas como phpdox o Doxygen?use namespace en @param

¿Cuál es la mejor/más común?

namespace foo\someNamespace; 
use foo\someOtherNamespace\MyOtherClass; 

--- with namespace --- 

/** 
* @param \foo\someOtherNamespace\MyOtherClass $otherClass 
*/ 
class myClass(MyOtherClass $otherClass) 
{ 
    // do something 
} 

--- without namespace --- 

/** 
* @param MyOtherClass $otherClass 
*/ 
class myClass(MyOtherClass $otherClass) 
{ 
    // do something 
} 
+4

+1 Personalmente siempre uso el espacio de nombres completo \ Root \ MyClass para facilitar las operaciones de búsqueda y reemplazo masivo si cambio las cosas ... pero generalmente también evito las declaraciones 'use' con mis espacios de nombres porque creo que lo hace más difícil de entender lo que está sucediendo en mi código. – rdlowrey

+0

Mi convención es ** siempre ** usar el FQN en Docbocks. Sin la barra invertida principal: _foo \ someOtherNamespace \ MyOtherClass $ otherClass_ – mosch

Respuesta

1

El espacio de nombres es una parte del nombre completo de la clase. Entonces, si no agregaste el espacio de nombre al nombre de clase en @param, obtendrías un tipo incorrecto.

Personalmente, creo que los espacios de nombres se convertirán muy pronto en los principales criterios para la organización de clases en PHP. Entonces las herramientas de documentación deberán usarlas.