wonsik / larastan
Larastan - 不运行代码即可发现其中的错误。Laravel 的 phpstan/phpstan 包装器
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- composer/composer: ^1.0 || ^2.0
- illuminate/console: ^5.8
- illuminate/container: ^5.8
- illuminate/contracts: ^5.8
- illuminate/database: ^5.8
- illuminate/http: ^5.8
- illuminate/pipeline: ^5.8
- illuminate/support: ^5.8
- mockery/mockery: ^0.9 || ^1.0
- phpstan/phpstan: ^1.0 <1.9
- symfony/process: ^4.3 || ^5.0 || ^6.0
Requires (Dev)
- nikic/php-parser: ^4.13.0
- orchestra/testbench: ~v3.8.6
- phpunit/phpunit: ^7.3 || ^8.2 || ^9.3
Suggests
- orchestra/testbench: Using Larastan for analysing a package needs Testbench
This package is auto-updated.
Last update: 2024-09-21 09:06:35 UTC
README
⚗️ 关于 Larastan
Larastan 由 Can Vural 和 Nuno Maduro 创建,由 @Caneco 设计艺术作品,由 Can Vural、Nuno Maduro 和 Viktor Szépe 维护,是一个 Laravel 的 PHPStan 包装器。Larastan 专注于 在代码中发现错误。即使在编写测试之前,它也能捕获整个类别的错误。
- 将静态类型添加到 Laravel 中,以提高开发人员生产力和 代码质量
- 支持 Laravel 的大部分 美丽魔法
- 发现代码中的错误
虽然按照定义,“静态分析”不会加载您应用程序的任何代码。Larastan 启动应用程序的容器,因此它可以解析仅在运行时才能计算的类型。这就是为什么我们使用“代码分析”而不是“静态分析”的原因。
✨ 3 步入门
要求
1:首先,您可以使用 Composer 将 Larastan 作为开发依赖项安装到您的 Laravel 项目中
composer require nunomaduro/larastan:^1.0 --dev
使用 Larastan 分析 Laravel 包?您可能需要安装
orchestra/testbench
。
2:然后,在应用程序根目录中创建一个 phpstan.neon
或 phpstan.neon.dist
文件。它可能看起来像这样
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app
# The level 9 is the highest level
level: 5
ignoreErrors:
- '#Unsafe usage of new static#'
excludePaths:
- ./*/*/FileToBeExcluded.php
checkMissingIterableValueType: false
有关所有可用选项,请参阅 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 的可配置规则列表:这里。
自定义 PHPDoc 类型
可以在此处找到特定于 Larastan 的 PHPDoc 类型列表:这里。
自定义 PHPStan 配置参数
您可以在PHPStan配置文件中使用以下自定义配置参数的列表,请在此处查看:这里。
忽略的错误
目前Laravel的一些部分对于Larastan/PHPStan来说理解起来过于神秘。我们列出了常见的忽略的错误,根据需要添加它们。
👊🏻 贡献
感谢您考虑为Larastan做出贡献。所有贡献指南均在此处提及:这里。
您可以在变更日志中查看持续更新和关于更改的详细信息。您也可以关注Twitter账户以获取最新公告,或者只是打个招呼:@enunomaduro,@can__vural。
❤️ 支持开发
你喜欢这个项目吗?通过捐赠来支持它
📖 许可证
Larastan是一个开源软件,许可协议为MIT许可证。