coolgoose / larastan-legacy
Larastan Legacy 1.x - 用于修复composer依赖的不再维护的分支
Requires
- php: ^8.0.2
- ext-json: *
- illuminate/console: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/container: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/contracts: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/database: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/http: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/pipeline: ^9.52.16 || ^10.28.0 || ^11.0
- illuminate/support: ^9.52.16 || ^10.28.0 || ^11.0
- phpmyadmin/sql-parser: ^5.9.0
- phpstan/phpstan: ^1.10.66
Requires (Dev)
- doctrine/coding-standard: ^12.0
- nikic/php-parser: ^4.19.1
- orchestra/canvas: ^7.11.1 || ^8.11.0 || ^9.0.2
- orchestra/testbench: ^7.33.0 || ^8.13.0 || ^9.0.3
- phpunit/phpunit: ^9.6.13 || ^10.5.16
Suggests
- orchestra/testbench: Using Larastan for analysing a package needs Testbench
- 2.x-dev
- v2.9.5
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.1
- v2.8.0
- v2.7.0
- v2.6.5
- v2.6.4
- v2.6.3
- v2.6.2
- v2.6.1
- v2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.5
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.9
- 2.2.8
- 2.2.7
- 2.2.6
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- v2.2.0
- v2.1.12
- v2.1.11
- v2.1.10
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- 2.0.0
- 1.x-dev
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- v0.7.15
- v0.7.14
- v0.7.13
- v0.7.12
- v0.7.11
- v0.7.10
- v0.7.9
- v0.7.8
- v0.7.7
- v0.7.6
- v0.7.5
- v0.7.4
- v0.7.3
- v0.7.2
- v0.7.1
- v0.7.0
- v0.6.13
- v0.6.12
- v0.6.11
- v0.6.10
- v0.6.9
- v0.6.8
- v0.6.7
- v0.6.6
- v0.6.5
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.8
- v0.5.7
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.21
- v0.3.20
- v0.3.19
- v0.3.18
- v0.3.17
- v0.3.16
- v0.3.15
- v0.3.14
- v0.3.13
- v0.3.12
- v0.3.11
- v0.3.10
- v0.3.9
- v0.3.8
- v0.3.7
- v0.3.6
- v0.3.5
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.12
- v0.2.11
- v0.2.10
- v0.2.9
- v0.2.8
- v0.2.7
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.10
- v0.1.9
- v0.1.8
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-patch-1
- dev-unused-translations
This package is auto-updated.
Last update: 2024-09-22 14:25:39 UTC
README
注意,这只是一个作为解决方案发布的版本,用于移除对旧版1.x版本的直接composer依赖。请参阅composer/composer#11940
⚗️ 关于Larastan
Larastan由Can Vural和Nuno Maduro创建,由@Caneco设计艺术品,由Can Vural、Nuno Maduro和Viktor Szépe维护,是一个PHPStan包装器,用于Laravel。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 许可证。