You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:48:16