【发布时间】:2021-09-16 08:09:38
【问题描述】:
问题
我最近开始使用 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是通过运行php artisan ide-helper:models -M命令添加的
这是 Laravel IDE-helper 包所必需的,顾名思义,它为 IDE 添加了 docblocks 以输入 Laravel 的魔法方法。
所以我尝试使用以下代码通过Ignore errors 解决这个问题:
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 扩展。
【问题讨论】: