问题标签 [phpstan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
88 浏览

php - Larastan 查询生成器实例理解或查询范围之前的位置

我正在使用 Larastan 来消除我在代码库中发生的一些静态分析错误。我有几个涉及 Eloquent 高阶消息传递代理的错误,称为orWhere.

我正在使用这种方法,如下所示。

在查看了 Larastan 存储库后,我偶然发现了为解决此问题而提出的这个问题以及合并的拉取请求。

问题

拉取请求

我目前有dev-masterLarastan 的版本,并已检查以确保 Builder 类作为它内部的 orWhere 的属性读取。

当我在包含 orWhere 高阶消息代理的文件上运行 phpstan 时,它给了我以下错误。

模型A

0 投票
1 回答
19 浏览

database - Phpstan教义数据库连接错误

我在一个项目中使用学说(不是 symfony)。在这个项目中,我还使用了 phpstan,我同时安装了phpstan/phpstan-doctrinephpstan/extension-installer. 我的 phpstan.neon 是这样的:

在 tests/object-manager.php 中,它返回调用返回实体管理器的函数的结果。

这是创建实体管理器的代码

当我运行时,vendor/bin/phpstan analyze我收到此错误:

这是因为我正在使用 docker,而我的数据库 url 是postgres://user:password@postgres_db/database postgres_db我的数据库容器的名称,因此主机名在 docker 容器内是已知的。

当我在容器内运行 phpstan 时,我没有错误。

那么有没有办法在 docker 之外运行 phpstan ?因为我很确定当我推送我的代码时,github 工作流程会因此而失败

phpstan 需要尝试访问数据库吗?

0 投票
2 回答
23 浏览

php - 将属性键入到比用于初始化它的函数返回的接口更具体的类

我正在尝试将我的 phpstan 设置提升到第 3 级,但我收到如下错误:

在一个看起来像这样的类上:

我知道我的 ORM 的getRepository方法返回RepositoryInterface,因为它不能更具体,但我需要@vartypehint 来告诉我的 IDE 工具和 phpstan,在这个类中,$repository更具体地是一个SpecificRepository. 我该怎么做?

0 投票
1 回答
48 浏览

php - 使用 phpdocblock 在 php 中定义方法/函数的通用返回

有没有办法指定函数将返回特定类型的对象,其中类型是参数之一的字符串?

例如

这样当我这样做时 vscode 或 phpstorm 就会知道

$myvar 将是 MyClass 类型,我将拥有适当的智能感知/自动完成功能吗?

0 投票
1 回答
26 浏览

php - 我如何将这个奇怪的 PHP 行翻译成不那么紧凑的东西?

我有这段代码,它是我用来确定给定字符串是否是保留的 PHP 关键字的函数的一部分(因为 PHP 没有内置的函数):

它使 PHPStan 吠叫:

参数 #1 $array of function reset 需要给出 array|object, array<int, int|string>|string。

我不知道为什么,但希望错误消失,所以我试图“展开”这条紧凑的线路,但我意识到我不明白它在做什么。你能解释一下并帮助我吗?我经常发现将事情分成单独的行/操作会使 PHPStan 停止吠叫。

0 投票
0 回答
11 浏览

php - 从未导入类 App\Controller\UserController 中的注释“@apiDefine”

我同时使用phpstanand apidoc,但我在 phpstan 上有一个错误,我找不到解决或忽略的方法。

据我了解,apidoc 不需要任何导入,但是当 phpstan 进入我的文件时,它不知道此注释,因此会触发错误。

在我看来,最好的解决方案是忽略这种错误,但它说:

不能忽略,请改用 excludePaths。

但我想将此文件保留在 phpstan 分析中。

我怎样才能修复这个错误或忽略它?

0 投票
0 回答
41 浏览

php - 为什么当我使用 is_string 时 PHPStan 显示类型错误?

我有这个代码:

PHPStan 报错:

二元运算“.” 在 '"' 和 non-empty-array|non-empty-string|true 之间会导致错误。

我不明白为什么会这样:我知道pg_last_notice如果设置了其他条件,它也可以返回布尔值或数组,但我有一个is_string检查,所以 PHPStan 应该知道这是一个字符串。

0 投票
1 回答
24 浏览

php - 处理关于数组的 phpstan 错误级别 9

我在我的存储库中创建了一个函数:

这个函数在我的控制器中调用,如果我转储它,我有

所以我的函数返回我输入的内容array<int, array<int, string>>,但是 phpstan 抛出这个错误: Method App\Repository\QuoteRequestRepository::findByBuildingGroupByCompany() should return array<int, array<int, string>> but returns mixed
如果我返回混合,它会抛出这两个错误:

我真的不知道如何处理它:(

任何想法 ?