.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