根据输入参数值在phpdoc中指定@return类型

时间:2014-08-14 21:51:57

标签: php phpdoc

有没有人知道根据输入参数指定@return类型的方法?

我的项目有很多方法调用,例如

...->getComponent('name')->someMethod()

其中getComponent是服务定位器,IDE并不了解它返回的值。

2 个答案:

答案 0 :(得分:2)

唯一的方法是让getComponent()的{​​{1}}标记实际列出可能返回的所有可能的数据类型。 PHP允许的这种动态,松散的类型行为不利于IDE自动完成所做的静态解析。尝试记录一直是一个艰难的案例,因为您的API文档与IDE必须构造的“对象树”一样“静态”,以便提供自动完成。

如果IDE自动完成足够紧急以保证调整代码以实现它,那么除了我之前的

@return选项,

您可以拆分这两个电话,而不是将它们链接起来,然后使用@return ClassOne|ClassTwo|...|ClassInfinitum“本地文档块”某些 IDE知道如何识别:

@var // this litte docblock establishes the data type for the local variable $nameComponent // note however that some IDEs want "datatype varname", // some want "varname datatype", // and some don't recognize the docblock at all /** @var \NameClass $myComponent */ $nameComponent = $service->getComponent('name');

答案 1 :(得分:0)

对于 PhpStorm IDE,您可以在项目中创建一个或多个名为 service cloud.firestore { match /databases/{database}/documents { function checkClaims() { return resource.data.List.filter((key) => { return auth.token[key] < resource.data[key] }).length > 0 ? false : true; } match /permissions/{permission} { allow read, write: if checkClaims(); } } } 的文件。以下是此类文件的示例内容:

.phpstorm.meta.php

您可以在此处找到文档: https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html#map

我建议提交此文件以使其他 PhpStorm 用户可以使用自动完成功能。