nunomaduro/larastan

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

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

安装次数: 36,352,249

依赖: 2,660

建议者: 7

安全: 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许可证授权。