为常量编写PHPDOC的正确方法是什么?
我有以下代码:为常量编写PHPDOC的正确方法是什么?,php,phpdoc,Php,Phpdoc,我有以下代码: /** * Days to parse * @var int */ const DAYS_TO_PARSE = 10; ... 我不认为对常量使用@var是正确的,我也没有看到任何@constantPHPDoc标记。正确的方法是什么?要让他们进入phpDoc,请使用: @const THING 通常构造: @const[ant] label [description] @const不是正确答案 它不是旧式phpDocumentor文档的一部分: 它不是当前phpDo
/**
* Days to parse
* @var int
*/
const DAYS_TO_PARSE = 10;
...
我不认为对常量使用
@var
是正确的,我也没有看到任何@constant
PHPDoc标记。正确的方法是什么?要让他们进入phpDoc,请使用:
@const THING
通常构造:
@const[ant] label [description]
@const
不是正确答案
- 它不是旧式phpDocumentor文档的一部分:
- 它不是当前phpDocumentor文档的一部分:
- 它不在维基百科的标签列表中:
- PHP-FIG PSR草案中未列出:
@brother
和@sister
这样的标签,这是我以前从未见过的,因此对该站点的整体信任度有所降低;-)事实上的
标准一直是phpDoc.org
简而言之,即使一些非官方标准确实提到了它,如果文档生成器不支持它,那么它就不值得使用
@var
目前是正确的,一旦PSR(上面列表中的最后一个链接)脱离草案,并且是phpDocumentor、Doxygen、APIGen和其他人理解PHPDoc的基础,那么@type
将是正确的,它是@var
的继承者,我使用Netbeans。使用此格式时,它将解析phpDoc的全局和类常量:
/** @const Global constant description */
define('MY_CONST', 10);
class MyClass
{
/** @const Class constant description */
const MY_CONST = 10;
}
7.22<代码>@var
您可以使用@var
标记记录以下内容的“类型”
“结构要素”:
- 常量,包括类和全局范围
- 性质
- 变量,包括全局范围和局部范围
@var[“Type”][元素名称][]
以下方面:
class-Foo
{
常数
/**
*@var字符串应包含说明
*/
MY_CONST1=“1”,
/**
*@var字符串应包含说明
*/
MY_CONST2=“2”;
}
无需注释常量的类型,因为类型始终为:
- 标量或数组
- 申报时已知
- 不变的
@const
也不是PHPDoc标准的一部分。PHP-FIG建议使用@var
,但PHPDoc并不支持这一点,也不会添加任何您无法从声明本身推断出的信息
因此,为了可读性,我建议只使用普通的PHPDoc docblock来记录常量:
class Foo
{
/**
* This is a constant.
*/
const BAR = 'bar';
}
当您生成PHPDOC时,它将描述常量,同时保持注释的干净性和可读性。至于
define
而言:我看到了一个,define是用于独立常量的,我正在寻找@Elzoconst FOO=1的类常量可能重复代码>也可以在类上下文之外工作。这家伙正在使用@access private,但我不知道您可以限制constants的可见性这一事实。类常量和由define()启动的全局常量之间不是有区别吗?我猜@const代表后者,是前者。我刚刚记录了一个类常量,生成的phpdoc正确地包含了描述。截至2017年4月,英文文档仍然没有@const
<代码>@const
无效,并且不存在于PHPDocumentor中。使用@var
。你不能在Netbeans中保留类常量的@const
吗?我刚刚在Netbeans 8中进行了测试,并且能够在全局和类常量声明中省略@const
。最终,。事实上,这对IDE来说似乎一点都不重要,例如,PHPStorm总是使用实际的代码值来找出类型(因为它必须有一个赋值)。因此本质上是“变量”的缩写,我们用来记录“常量”的东西?从2017年起,使用@const
将正确输出我的描述,但@var
不会输出任何类常量。这已过时。PSR-5草案的当前版本不再具体提到这一点。我认为常量不需要特定的类型提示,因为它们的类型是不可变的,并且总是可以推断:@Yogarine常量可能不需要类型提示,但可能需要记录使用的常量for@BradKent当然在这种情况下,只添加一个没有任何注释的docblock就足够了。