有没有办法让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?