如何在PhpStorm中实现多个expectedArguments共享参数列表
PhpStorm meta文件可选参数复用方案
针对你使用的PhpStorm 2021.3.3版本,.phpstorm.meta.php的解析规则不支持单条expectedArguments声明绑定多个方法,也不支持直接传入普通PHP数组作为可选值列表复用,但可以通过官方提供的参数集语法实现一次定义、多处引用,把维护成本降到最低。
可行实现方式
使用registerArgumentsSet提前注册统一的可选值集合,再通过argumentsSet()在对应参数位置引用即可,具体写法如下:
namespace PHPSTORM_META { // 所有配置key只需要在这里定义一次 registerArgumentsSet('setting_allowed_keys', 'foo', 'bar', 'baz' // 后续新增、修改、删除key都只改这一处 ); // 为get方法的第0个参数绑定可选值集合 expectedArguments( \App\Models\Setting::get(), 0, argumentsSet('setting_allowed_keys') ); // 为set方法的第0个参数复用同一个可选值集合 expectedArguments( \App\Models\Setting::set(), 0, argumentsSet('setting_allowed_keys') ); }
注意事项
- 2021.3.3版本不支持方法通配符写法,类似
\App\Models\Setting::*()这种批量匹配类下所有方法的语法是后续更高版本才加入的,在当前版本写了不会生效,不要使用。 .phpstorm.meta.php是PhpStorm自定义解析的元数据DSL,不是标准可执行PHP代码,不要尝试用普通PHP变量、数组定义值列表再传入,解析器无法识别这类写法,会导致规则失效。- 如果写完规则后IDE没有弹出对应提示,手动清除缓存重启即可:依次打开
File -> Invalidate Caches...,选择Invalidate and Restart等待索引重建完成。
内容的提问来源于stack exchange,提问作者rrmesquita
相关产品推荐
相关产品推荐

