如何使用@package& phpdoc中的@subpackage?

时间:2011-04-06 12:12:58

标签: php phpdoc

我想知道如何使用@package& @subpackage for class doc。

假设我有以下课程

class My_Controller_Action_Helper_MyHelperAction extends Foo_Bar {}

应该是:

@category    My
@package     Controller
@subpackage  Action_Helper

@category    My
@package     Controller
@subpackage  Action_Helper_MyHelperAction

@category    My
@package     Controller_Action
@subpackage  MyHelperAction

@category   My
@package    My_Controller_Action
@subpackage MyHelperAction

如果使用命名空间而不是'_'怎么办?

3 个答案:

答案 0 :(得分:7)

首先:如果你使用“_”或“\”(命名空间分隔符)不应该影响你的决定,你如何注释你的类。下划线“_”来自命名空间之前的年龄,并且“就像”命名空间分隔符,除了它不创建任何命名空间。所以“My_Controller_Action”应该被视为“My_Controller”中的“Action”。

但是,您使用@package和/或@subpackage的方式确实是您的决定。例如,我根本不使用@category@subpackage是“第二”命名空间之后的所有内容。让我解释一下:我遵循PSR-0标准,其中包被组织成\<Vendorname>\<packagename>\<subpackage>\...(或“_”而不是“\”,具体取决于版本)。然后@package <vendorname>.<package>@subpackage <subpackage>

结论:由您决定:)文档可能会根据您使用的标记以及如何使用它们来生成代码的不同结构。试试吧。

答案 1 :(得分:1)

我使用@package作为此文件所属的包的名称...惊讶:)例如,如果它是一个名为xyz的插件,@ package包含属于该包的所有文件。

对于doxygen(我使用的)来说,没有@subpackage之类的东西,尽管你可以制作自己的东西。例如:http://www.doxygen.nl/manual/commands.html

对于doxygen,您可以使用类似@package my.awesome.package的内容,将其分解为“子包”

只要它有意义且一致,你就可以将它用于任何事物。首先确定您要使用的内容,然后查看该应用程序的建议/文档,因为它们都是不同的

答案 2 :(得分:0)

如果您在2020年遇到此问题,则@category@subpackage标签均被视为已弃用,因此请不要再使用它们。

相反,您应该使用@package提供所需的逻辑细分。

根据https://docs.phpdoc.org/latest/references/phpdoc/tags/category.htmlhttps://docs.phpdoc.org/latest/references/phpdoc/tags/subpackage.html

重要:该标签被认为已弃用,可以在 未来版本的phpDocumentor。建议使用@package 标签提供多个级别的功能。

重要:该标签被认为已弃用,可以在 未来版本的phpDocumentor。建议使用@package 标签提供多个级别的功能。