有没有人知道根据输入参数指定@return
类型的方法?
我的项目有很多方法调用,例如
...->getComponent('name')->someMethod()
其中getComponent
是服务定位器,IDE并不了解它返回的值。
答案 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 用户可以使用自动完成功能。