Larastan 由 Can Vural 和 Nuno Maduro 创建,由 @Caneco 设计艺术品,由 Can Vural 和 Viktor Szépe 维护,是 Laravel 的 PHPStan 扩展。 Larastan 专注于查找代码中的错误。甚至在您为代码编写测试之前,它就可以捕获所有类别的错误。
根据定义,“静态分析”不会加载任何应用程序代码。 Larastan 启动应用程序的容器,因此它可以解析只能在运行时计算的类型。这就是为什么我们使用术语“代码分析”而不是“静态分析”。
| Laravel 版本 | 拉拉斯坦版本 |
|---|---|
| < 9 | 1.x |
| > 9.0 && <11.15 | 2.x |
| 11.15+ | 3.0+ |
要求:
1 :首先,您可以使用 Composer 将 Larastan 作为开发依赖项安装到您的 Laravel 项目中:
composer require --dev " larastan/larastan:^3.0 "使用 Larastan 分析 Laravel 包?您可能需要安装
orchestra/testbench。
2 :然后,在应用程序的根目录中创建phpstan.neon或phpstan.neon.dist文件。它可能看起来像这样:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
对于所有可用选项,请查看 PHPStan 文档: https://phpstan.org/config-reference
3 :最后,您可以使用 phpstan 控制台命令开始分析代码:
./vendor/bin/phpstan analyse如果您收到错误Allowed memory size exhausted ,则可以使用--memory-limit选项解决该问题:
./vendor/bin/phpstan analyse --memory-limit=2G可以使用 php 注释或配置文件来忽略特定错误:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line当忽略 PHPStan 配置文件中的错误时,通过根据错误消息编写正则表达式来忽略它们:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '在较旧的代码库中,可能很难花时间修复所有代码以通过高 PHPStan 级别。
为了解决这个问题,可以生成一个基线文件。基线文件将创建一个包含所有当前错误的配置文件,因此可以按照比旧代码更高的标准编写新代码。 (PHPStan 文档)
./vendor/bin/phpstan analyse --generate-baseline可以在此处找到特定于 Laravel 的可配置规则列表。
可以在此处找到 Larastan 功能列表。
可以在此处找到特定于 Larastan 的 PHPDoc 类型列表。
您可以在此处找到可在 PHPStan 配置文件中使用的自定义配置参数列表。
Laravel 的某些部分目前对于 Larastan/PHPStan 来说太神奇了,无法理解。我们列出了要忽略的常见错误,请根据需要添加它们
感谢您考虑为 Larastan 做出贡献。这里提到了所有贡献指南。
Larastan 是一款根据 MIT 许可证授权的开源软件。