nunomaduro/laravel-code-analyse

此包已被弃用且不再维护。作者建议使用 nunomaduro/larastan 包。

Larastan - 在不运行代码的情况下发现代码中的错误。Laravel 的 phpstan/phpstan 包装器

安装: 681

依赖: 0

建议者: 0

安全: 0

星星: 5 460

关注者: 52

分支: 406

开放问题: 85

类型:phpstan-extension

v2.9.8 2024-07-06 17:46 UTC

README

Larastan Logo

Larastan Example

Build Status Total Downloads Latest Version License

⚗️ 关于 Larastan

如果你使用的是低于 9.x 的 Laravel 版本,请参考 Larastan v1.x,配合 PHPStan 1.8.x

Larastan 由 Can VuralNuno Maduro 创建,艺术作品由 @Caneco 设计,由 Can VuralNuno MaduroViktor Szépe 维护,是 Laravel 的 PHPStan 包装器。Larastan 专注于 查找代码中的错误。它甚至在为代码编写测试之前就能捕捉到整个类的错误。

  • 为 Laravel 添加静态类型,以提高开发效率和 代码质量
  • 支持 Laravel 的大部分 优美魔法
  • 发现代码中的错误

由于“静态分析”在定义上不会加载你应用中的任何代码,Larastan 启动了你的应用容器,因此它可以解析只在运行时才能计算的类型。这就是为什么我们使用“代码分析”而不是“静态分析”这个术语。

✨ 3步入门

要求

1: 首先,你可以使用 Composer 将 Larastan 作为开发依赖项安装到你的 Laravel 项目中

composer require --dev "larastan/larastan:^2.0"

使用 Larastan 分析 Laravel 包?你可能需要安装 orchestra/testbench

2: 然后,在你的应用根目录下创建一个 phpstan.neonphpstan.neon.dist 文件。它可能看起来像这样

includes:
    - vendor/larastan/larastan/extension.neon

parameters:

    paths:
        - app/

    # Level 9 is the highest level
    level: 5

#    ignoreErrors:
#        - '#PHPDoc tag @var#'
#
#    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 的可配置规则列表。

功能

可以在这里找到 Larastan 的功能列表。

自定义 PHPDoc 类型

可以在这里找到针对 Larastan 的特定 PHPDoc 类型列表。

自定义 PHPStan 配置参数

可以在这里找到您可以在 PHPStan 配置文件中使用的自定义配置参数列表。

要忽略的错误

目前 Laravel 的某些部分对于 Larastan/PHPStan 来说过于神秘,难以理解。我们列出了常见的要忽略的错误,根据需要添加它们。

👊🏻 贡献

感谢您考虑为 Larastan 做出贡献。所有贡献指南均可在这里找到。

📖 许可证

Larastan 是一个开源软件,受MIT 许可证许可。