在 @param 中使用命名空间

9

在@param注释中包含类的命名空间是一个好习惯吗?我知道phpdoc不支持命名空间,但其他工具如phpdox或Doxygen会如何处理?

哪种方式更好/更常见?

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
我个人总是使用完整的命名空间\Root\MyClass,这样如果我改变了东西,就可以更容易地进行大规模查找和替换操作......但我通常会避免在我的命名空间中使用use语句,因为我认为这会让代码更难理解。 - user895378
我的惯例是在文档块中始终使用FQN。不带前导反斜杠:foo\someOtherNamespace\MyOtherClass $otherClass - mosch
1个回答

2

命名空间是类的完整名称的一部分。因此,如果您在@param中不添加命名空间到类名中,则会给出错误的类型。

个人认为,在PHP中,命名空间很快就会成为组织类的主要标准。因此,文档工具都必须使用它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接