phpDocumentor - 常量的可用值列表

时间:2014-01-30 15:02:04

标签: php documentation phpdoc

我正在编写API客户端,我想通过常量为一个参数定义默认值。现在我有这样的话:

/**
 * Available: val_1|val_3|val_3|val_4|val_5
 * 
 * @var string
 */
const MY_DEFAULT_VALUE = 'val_1';

但我不确定“enum”的这种用法是否正确。我找到了如何do it with method parameters,但这不是同一个问题。我的方法的定义是:

public function callApi($someParam, $anotherParam = self::MY_DEFAULT_VALUE)

这有什么标准吗?非常感谢。

编辑:我将停止使用抽象值和参数,我将尝试在我正在解决的具体示例中解释它...我使用方法setLanguage()调用API有可选参数$lang。我的代码片段:

const DEFAULT_LANGUAGE = 'ENG';
// ...
public function setLanguage($lang = self::DEFAULT_LANGUAGE)

但我打电话的API只接受一些语言。基本上,我想在评论中告诉其他程序员:“好的,所以你想要更改默认语言,但请注意只有这些值是有效的。”。这并不重要,我认为我现有的解决方案也很清楚:

/**
 * Available: ENG|ITA|FRA|DEU|ESP
 * 
 * @var string
 */
const DEFAULT_LANGUAGE = 'ENG';

我只是想知道,如果对此有一些“好的做法”。

1 个答案:

答案 0 :(得分:1)

每当我需要指定的可能值枚举时,我总是会使用单个常量来明确定义它们的所有,例如const VALUE_1 = 'val_1';const VALUE_2 = 'val_2';

至于识别默认值应该是什么,我同意你在callApi()中设置第二个参数以设置默认值(callApi())的方法,但是通过使用其中一个实际常量而不是另一个“默认”常量,它只指向一个值常量。这样,您可以在基类中设置主默认值,如果子类想要选择自己的默认值,则只需覆盖该方法。

此外,这允许您在@param的文档块中的callApi()标记中明确提及这些各种参数选项。

最后,我建议将常量值设置为整数而不是字符串。这样,由于值本身不会提供特别的信息,因此调用者在callApi()时更可能使用常量名称,从而使自己的代码更具可读性,并且不太可能传递意外值。