Rector工具中TREAT_AS_NON_EMPTY配置项的作用是什么?
Rector中TREAT_AS_NON_EMPTY配置项的作用
这个配置是给Rector部分规则(比如禁止使用empty()的DisallowedEmptyRule)用的,核心作用就是告诉Rector:这些指定的内容永远不会是空值,不用对它们执行规则校验或修复。
具体来说:
- 比如你用DisallowedEmptyRule来清除项目里的
empty()调用,但有些变量你百分百确定不会为空——比如从数据库拉取的必填字段、经过前置严格校验的用户输入、返回值必有内容的工具函数。 - 把这些变量、函数调用或者表达式加到TREAT_AS_NON_EMPTY列表里,Rector就会跳过对它们的检查,不会把对应的
empty()调用标记为违规,也不会自动修改它们。
举个配置示例:
use Rector\Php80\Rector\FuncCall\DisallowedEmptyRule; use Rector\Config\RectorConfig; return static function (RectorConfig $rectorConfig): void { $rectorConfig->ruleWithConfiguration(DisallowedEmptyRule::class, [ DisallowedEmptyRule::TREAT_AS_NON_EMPTY => [ '$user->id', // 确定非空的对象属性 'getSystemConfig()', // 确定返回非空值的函数 ], ]); };
注意:这个配置只对明确支持它的规则生效,主要是用来避免Rector的规则误判,适配项目里的自定义业务逻辑或代码约定。
内容的提问来源于stack exchange,提问作者Dharman
相关产品推荐
相关产品推荐

