orklah / psalm-strict-types
当文件可证明安全时,添加 strict_types 声明
Requires
- php: ^7.3|^8.0
- vimeo/psalm: ^4.4.0
Requires (Dev)
- nikic/php-parser: ^4.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.15.0
This package is auto-updated.
Last update: 2024-08-29 05:41:01 UTC
README
一个通过分析文件内容添加 strict_types 声明的 Psalm 插件
安装
$ composer require --dev orklah/psalm-strict-types $ vendor/bin/psalm-plugin enable orklah/psalm-strict-types
使用
要启动标准分析,运行您常用的 Psalm 命令
$ vendor/bin/psalm
要自动添加 strict_types 声明
$ vendor/bin/psalm --alter --plugin=vendor/orklah/psalm-strict-types/src/Plugin.php
说明
警告:虽然这个插件在设计时考虑了安全性,但分析代码是困难的。此插件可能会在可能破坏您的生产环境的文件上添加 strict_types 声明。请谨慎使用
此插件使用 Psalm 类型推断和 PHP-Parser 的节点解析来检查每个可能的 strict_types 违规
- 方法/函数调用中的参数
- 方法/函数的返回语句
- 属性分配
当它遇到潜在的有问题的代码时,它将根据代码的严重性创建一个 Psalm 问题
- BadTypeFromDocblockIssue
- MixedBadTypeFromDocblockIssue
- PartialBadTypeFromDocblockIssue
当在尚未启用 strict 的文件上遇到类型(从文档块推断)时,会发出这些问题。给定的类型可以是混合的(通常文档不足)、部分(期望联合的一部分)或完全错误(完全不同的类型)
- BadTypeFromDocblockOnStrictFileIssue
- MixedBadTypeFromDocblockOnStrictFileIssue
- PartialBadTypeFromDocblockOnStrictFileIssue
当在已启用 strict 的文件上遇到类型(从文档块推断)时,会发出这些问题。给定的类型可以是混合的(通常文档不足)、部分(期望联合的一部分)或完全错误(完全不同的类型)
- BadTypeFromSignatureIssue
- MixedBadTypeFromSignatureIssue
- PartialBadTypeFromSignatureIssue
当在尚未启用 strict 的文件上遇到类型(从签名推断)时,会发出这些问题。给定的类型可以是混合的(通常文档不足)、部分(期望联合的一部分)或完全错误(完全不同的类型)
- BadTypeFromSignatureOnStrictFileIssue
- MixedBadTypeFromSignatureOnStrictFileIssue
- PartialBadTypeFromSignatureOnStrictFileIssue
当在已启用 strict 的文件上遇到类型(从签名推断)时,会发出这些问题。给定的类型可以是混合的(通常文档不足)、部分(期望联合的一部分)或完全错误(完全不同的类型)
- GoodTypeFromDocblockIssue
当遇到期望的类型但由文档块推断时,会发出此问题。在这种情况下,此插件不会自动添加 strict_types 声明,因为文档块可能不正确
- StrictDeclarationToAddIssue
不在 --alter 模式下时,当插件检测到可以为该文件安全添加声明时,将发出此问题
注释
此插件的理念与 Psalm 不一致。实际上,解决此插件中的每个问题可能会在 Psalm 核心中创建新的问题。(例如 RedundantCast)这是由于决定不信任此工具上的文档块以避免在文档块错误时添加 strict_types。