我有一个 CodeIgniter 4 应用程序,我正在使用 PHPStan 来帮助我进行静态分析。我的问题是 PHPStan 抱怨他找不到 CodeIgniter 4 函数。我检查了 PHPStan 文档,我有这个 phpstan.neon 配置:
parameters:
level: 5
paths:
- app\Models\IonAuthModel.php
scanDirectories:
- app\config
- app\controllers
- app\database
- app\filters
- app\helpers
- app\language
- app\libraries
- app\models
- app\thirdparty
- app\views
excludePaths:
- app\models\IonAuthModel.php
- app\controllers\Auth.php
- app\controllers\Migrate.php
ignoreErrors:
- '#Function view not found.#'
- '#Function base_url not found.#'
- '#Function redirect not found.#'
- '#Function config not found.#'
- '#Function helper not found.#'
正如你所看到的,我被迫在ignoreErrors中添加一些错误,但是列表正在增长。现在我对 lang 方法有错误:
$output[] = lang($message) !== $message ? lang($message) : '##' . $message . '##';
但是根据Codeigniter 4,这里正确使用了lang方法,并且PHPStorm对此方法没有任何抱怨。然而,PHPStan 给出了错误:
未找到函数语言。 💡了解更多信息https://phpstan.org/user-guide/discovering-symbols
但是我读了三遍上面的链接,仍然无法解决 PHPStan 找不到 CodeIgniter 函数的问题。谁能告诉我我做错了什么?
这些函数在这里定义:https://github.com/codeigniter4/framework/blob/master/system/Common.php
因此您需要将此文件放入项目中“发现符号”相关的配置参数中。
还有什么可能足以代替:将此文件 https://github.com/codeigniter4/framework/blob/master/system/bootstrap.php 放入 phpstan.neon 中的
bootstrapFiles
。
还有一些关于使用 PHPStan 分析 CodeIgniter 项目的旧 GitHub 问题,请查看它们,它们链接了一些带有示例配置的存储库: