PHPStorm meta 高级用法示例

.phpstorm.meta.php

对于一些自研框架或容器注入类函数,我们可以通过高级用法,元数据 meta 的方式手动添加重写规则,用来指示和明确自动完成的关系,从而完成代码提示和跳转跟踪

一、使用方法

在项目根目录新增文件 .phpstorm.meta.php

文件是 PHP 的写法,示例内容如下:

<?php

namespace PHPSTORM_META {
    // metadata directives
    // 指示 D 方法 重写函数
    override(\D(0), map([
        'Agent' => \AgentModel::class,
        'User' => \UserModel::class,
    ]));
    // 指示 X 方法
    override(\X(0), map([
        'Agent' => \AgentService::class,
        'AgentTransfer' => \AgentTransferService::class,
    ]));
}

二、规则定义

在 .phpstorm.meta.php 文件中,需要声明 PHPSTORM_META 命名空间,并提供元数据指令。这些指令用于指定如何处理特定的函数或方法。以下是一些常见的元数据指令:

  • override() :覆盖函数或方法的行为。
  • map() :映射参数到特定的类型或值。
  • type() :指定参数的类型。
  • expectedArguments() :指定函数或方法的预期参数类型。
  • exitPoint() :指定函数或方法的退出点。

这些指令使用 PHP 代码编写,因此可以利用 PhpStorm 的代码编辑器功能,如代码自动完成、指示和重构等。

其他指令示例请移步官方文档:https://www.jetbrains.com/help/phpstorm/ide-advanced-metadata.html#create-metadata-files-inside-your-project

Author: thinkwei

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注