larastan/larastan

GitHub: larastan/larastan

专为 Laravel 框架设计的静态代码分析工具,基于 PHPStan 扩展,帮助开发者在编码阶段提前发现类型错误和潜在 Bug,提升代码质量。

Stars: 6350 | Forks: 492

Larastan Logo

Larastan Example

Build Status Total Downloads Latest Version License

## ⚗️ 关于 Larastan Larastan 由 [Can Vural](https://github.com/canvural) 和 [Nuno Maduro](https://github.com/nunomaduro) 创建,[@Caneco](http://github.com/caneco) 设计了图标,由 [Can Vural](https://github.com/canvural)、[Nuno Maduro](https://github.com/nunomaduro) 和 [Viktor Szépe](https://github.com/szepeviktor) 共同维护。它是一个针对 Laravel 的 [PHPStan](https://phpstan.org/) 扩展。Larastan 专注于**发现代码中的错误**。它甚至能在你为代码**编写测试之前**就捕获整类的 bug。 - 为 Laravel 添加静态类型,以提高开发者的生产力和**代码质量** - 支持 [Laravel](https://laravel.com) 大多数的**精妙魔术方法** - 发现代码中的 bug ### 支持的 Laravel 版本 | Laravel 版本 | Larastan 版本 | |--------------------|------------------| | < 9 | 1.x | | \> 9.0 && >= 11.16 | 2.x | | 11.16+ | 3.0+ | ## ✨ 3 步快速入门 - **[PHP 8.2+](https://php.net/releases/)** - **[Laravel 11.15+](https://github.com/laravel/laravel)** **1**:首先,你可以使用 [Composer](https://getcomposer.org) 将 Larastan 作为开发依赖安装到你的 Laravel 项目中: ``` composer require --dev "larastan/larastan:^3.0" ``` **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 文档](https://phpstan.org/user-guide/baseline)) ``` ./vendor/bin/phpstan analyse --generate-baseline ``` ## 规则 可以在此处找到特定于 Laravel 的可配置规则列表。 ## 功能 可以在此处找到 Larastan 的功能列表。 ## 自定义 PHPDoc 类型 可以在此处找到特定于 Larastan 的 PHPDoc 类型列表。 ## 自定义 PHPStan 配置参数 可以在此处找到可在 PHPStan 配置文件中使用的自定义配置参数列表。 ## 要忽略的错误 Laravel 的某些部分目前过于“魔术化”,导致 Larastan/PHPStan 无法理解。 我们列出了常见的[要忽略的错误](docs/errors-to-ignore.md),你可以根据需要添加它们 ## 👊🏻 贡献 感谢你考虑为 Larastan 做出贡献。所有的贡献指南都在[这里](CONTRIBUTING.md)。 ## 📖 许可证 Larastan 是一个开源软件,基于 [MIT 许可证](LICENSE.md) 授权。
标签:Bug发现, ffuf, Larastan, Laravel, OpenVAS, PHP, PHPStan, URL发现, Web开发框架, 云安全监控, 代码审查, 代码规范, 前端框架, 安全专业人员, 安全检测, 开发者生产力, 自动测试, 错误基检测, 错误检测, 静态代码分析, 静态分析, 静态检查, 静态类型