php - PHPStan 忽略错误正则表达式
问题描述
问题
我最近开始使用 PHPStan 来分析我的Laravel项目的代码,但我一直收到以下错误models
:
------ --------------------------------------------------------------------
Line Models/Fund.php
------ --------------------------------------------------------------------
14 PHPDoc tag @mixin contains unknown class App\Models\IdeHelperFund.
Learn more at https://phpstan.org/user-guide/discovering-symbols
------ --------------------------------------------------------------------
代码
这是触发错误的代码:
<?php
namespace App\Models;
/**
* Class Fund
*
* @package App\Models
* @mixin IdeHelperFund
*/
class Fund extends Model
{
//...
}
这mixin
是通过运行Laravel IDE-helper包php artisan ide-helper:models -M
所需的命令添加的,顾名思义,该命令将 IDE 的 docblocks 添加到 Laravel 的typehint魔术方法中。
因此,我尝试使用以下代码通过忽略错误来解决此问题:
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app
# The level 8 is the highest level
level: 5
ignoreErrors:
-
message: '#PHPDoc tag @mixin contains unknown class App\\Models\\IdeHelper(.*)+\.#'
path: Models/*
excludePaths:
checkMissingIterableValueType: false
但不知何故,在 Regexr 测试正则表达式时错误不匹配工作正常。
有什么建议我做错了吗?我注意到他们#
在正则表达式的开头和结尾添加的忽略错误文档中,所以我已将其添加到我的 phpstan 配置中,但我不确定这是否是必需的,但如果没有它们,我会收到以下错误(所以我把它们留在里面):
-- ------------------------------------------------------------------------------------------------------------------------------------
Error
-- ------------------------------------------------------------------------------------------------------------------------------------
Delimiter must not be alphanumeric or backslash in pattern: PHPDoc tag @mixin contains unknown class App\\Models\\IdeHelper(.*)+\.
-- ------------------------------------------------------------------------------------------------------------------------------------
附加信息
我正在使用默认的larastan版本0.7.12
扩展。
解决方案
PHPStan 就在这里。IdeHelperFund
类不在App\Models
命名空间中。
您需要让 PHPStan 知道文件在哪里。您可以通过扫描额外的文件来做到这一点。在这里阅读:https ://phpstan.org/user-guide/discovering-symbols#third-party-code-outside-of-composer-dependencies
作为 Larastan 的维护者,我建议您将所有 ide-helper 内容写入文件。像_ide_helper.php
, _ide_helper_models.php
,.phpstorm.meta.php
这个 ide-helper 的 mixin 标签会干扰 PHPStan 的分析。
推荐阅读
- java - 忽略/不使用方法结果时的编译器错误
- javascript - 如何在一个循环中添加 onClick 事件并在另一个循环中的相应元素上切换类?
- spring-boot - Kubernetes 上的 RabbitMQ 队列中未确认的消息
- c# - 使用接口与实现接口的通用类型之间的区别
- android - 蓝牙 BLE 无法连接
- javascript - 在 React 的粘贴/拖放事件中接收图像文件
- docker - Kubernetes - minikube 服务连接超时
- java - java - 如何使用正则表达式java删除删除以仅从字符串中获取数值?
- matplotlib - 使用 matplotlib 添加文本
- php - PHP:数组中的字符串换行