有没有办法让phpDoc将一个对象数组作为参数?

在phpDoc生成的文档中,我可以让phpDoc为给定的参数使用生成一个自定义类型定义的链接

@param CustomType $variablename

这很好。 然而,我目前记录的代码需要CustomType []参数,即所述CustomType的数组。 我希望文档清楚,数组是必需的,但是当我使用

@param CustomType[] $variablename

phpDoc不再识别类型,因此不能链接到它的定义。 在这种情况下,这非常重要 - 我正在记录一些需要提供一些相当复杂类型的API。

我已经尝试了几种不同的语法,并将所有条目都作为单独的变量类型处理,或者在文档中将中断类型识别。

除了这个,我只会在参数说明中注明它,但是显示类型中参数的数组内容似乎更加清楚。

编辑

随着phpDocumentor 2(它与DocBlox合并)的

@param CustomType[] $paramName

语法有效,正如@ Styx的答案中所提到的,PhpStorm支持使用该语法的类型提示。

接受的答案已更新得当。


新版本的PHP文档支持/** @var sometype[] */语法。 更复杂: /** @var (sometype|othertype)[] */ 。 http://www.phpdoc.org/docs/latest/guides/types.html#arrays PHPStorm也支持这种语法。


你可以做的最好的是:

@param array $variablename an array of {@link CustomType} objects

这应该有助于读者实现$ variablename的真实数据类型,同时指示数组包含的期望。

当涉及到使用$ variablename中的成员并希望显示CustomType的属性/方法时,这将不足以帮助IDE自动完成。 目前确实没有办法获得这种行为。


请参阅以下示例:https://code.google.com/p/google-api-php-client/source/checkout其中描述了输入参数的数组结构。

/**
  * Set the OAuth 2.0 access token using the string that resulted from calling authenticate()
  * or Google_Client#getAccessToken().
  * @param string $accessToken JSON encoded string containing in the following format:
  * {"access_token":"TOKEN", "refresh_token":"TOKEN", "token_type":"Bearer",
  *  "expires_in":3600, "id_token":"TOKEN", "created":1320790426}
  */


/**
  * Insert a new file. (files.insert)
  *
  * @param Google_DriveFile $postBody
  * @param array $optParams Optional parameters.
  *
  * @opt_param bool convert Whether to convert this file to the corresponding Google Docs format.
  * @opt_param string targetLanguage Target language to translate the file to. If no sourceLanguage is provided, the API will attempt to detect the language.
  * @opt_param string sourceLanguage The language of the original file to be translated.
  * @opt_param string ocrLanguage If ocr is true, hints at the language to use. Valid values are ISO 639-1 codes.
  * @opt_param bool pinned Whether to pin the head revision of the uploaded file.
  * @opt_param bool ocr Whether to attempt OCR on .jpg, .png, or .gif uploads.
  * @opt_param string timedTextTrackName The timed text track name.
  * @opt_param string timedTextLanguage The language of the timed text.
  * @return Google_DriveFile
  */
链接地址: http://www.djcxy.com/p/58619.html

上一篇: Is there a way for phpDoc to document an array of objects as a parameter?

下一篇: JetBrains WebIDE: PHP variable type hinting?