I couldn't really interpret a clear answer about this from the documentation.
When adding a reference to another structural element in a @see
or @param
comment, for example, do I always need to use the fully qualified name of the element, even if the two elements are local to each other?
e.g. Object hierarchy
Animals
--- Mammals
--- Cat
--- Dog
Let's say within the Cat class I want to reference Dog. As they reside within the same namespace, do I need to give the fully qualified path? If it doesn't matter either way, is there a best practice? Should I use the fully qualified path anyway, to remove any ambiguity or misunderstanding by developers reading the code?
namespace Animals\Mammals;
class Cat
{
/**
* @param Dog $dog An instance of a Dog.
*
* OR
*
* @param \Animals\Mammals\Dog $dog An instance of a Dog.
*/
public function foo(Dog $dog)
{
// ...
}
}
No, it isn't necessary.
A valid class name seen from the context where this type is mentioned. Thus this may be either a Fully Qualified Class Name (FQCN) or if present in a namespace a local name.
phpDocumentor only needs that class type should be documented:
If the return Type is a class that is documented by phpDocumentor, then a link to that class’ documentation is provided.