sandromiguel / php-type
验证 PHP 字段值以确保数据完整性并抑制代码检查警告。
Requires
- php: >=8.1
Requires (Dev)
- nunomaduro/phpinsights: ^2.7
- phan/phan: ^5.3
- phpmetrics/phpmetrics: ^2.7.4
- phpspec/phpspec: ^7.1.0
- phpstan/phpstan: ^1.7.7
- phpunit/phpunit: ^9
- psalm/plugin-phpunit: ^0.18.4
- roave/security-advisories: dev-master
- vimeo/psalm: ^5.9
This package is auto-updated.
Last update: 2024-09-18 13:46:03 UTC
README
PhpType 是一个精心制作的 PHP 库,用于验证字段值,保护数据完整性并抑制代码检查警告。它通过无缝集成运行时检查超越了单纯的代码检查问题,这些运行时检查在代码执行期间作为强大的验证层,确保数据与指定的类型一致。这种双重方法不仅抑制了代码检查警告,而且加强了应用程序的完整性,为数据处理过程增加了额外的信心。
特性
- 支持
int、string、bool和array数据类型。 - 提供简单易用的接口。
- 轻量级且高效。
- 文档齐全。
需求
- PHP 8.1 或更高版本
目录
安装
您可以通过 Composer 安装此库。运行以下命令
composer require sandromiguel/php-type
使用
此库在验证数组方面表现出色,确保数据符合指定的类型,有助于构建更稳健可靠的代码库。以下是一些 PhpType 能够发挥作用的场景:
场景 1:方法输入验证
当接受数组作为方法参数时,验证输入至关重要,以确保数据与预期类型一致。在这种情况下使用 PhpType 可以提高代码可靠性并防止意外的类型不匹配。
显示代码检查警告的示例
/** * @param array<string,int|string> $someArray The array. */ public static function someMethodWithWarning(array $someArray): void { $someEntity = new Entity( $someArray['someInt'], $someArray['someString'] ); echo $someEntity->getProperty1() . "\n"; echo $someEntity->getProperty2() . "\n"; }
使用 PhpType 解决上述警告
/** * @param array<string,int|string> $someArray The array. */ public static function someMethodWithPhpType(array $someArray): void { $someInt = Validator::validate('someInt', $someArray['someInt'])->getIntValue(); $someString = Validator::validate('someString', $someArray['someString'])->getStringValue(); $someEntity = new Entity($someInt, $someString); echo $someEntity->getProperty1() . "\n"; echo $someEntity->getProperty2() . "\n"; }
场景 2:方法输出验证
在需要从数组返回值的情况下,如字符串,PhpType 确保返回的值符合预期类型。
use PhpType\Validator; /** * Get some text. * * @return string The text. */ public function getSomeText(): string { return Validator::validate( 'fieldName', $this->params['fieldName'] ?? null ) ->stringNotEmpty() ->getStringValue(); }
公共方法
-
validate(string $fieldName, mixed $fieldValue): Validator开始字段的验证链。 -
stringNotEmpty(): Validator检查字符串是否为空。 -
getArrayValue(): array获取数组值。 -
getArrayValueOrNull(): ?array获取数组值或 null。 -
getBoolValue(): bool获取布尔值。 -
getBoolValueOrNull(): ?bool获取布尔值或 null。 -
getIntValue(): int获取整数值。 -
getIntValueOrNull(): ?int获取整数值或 null。 -
getStringValue(): string获取字符串值。 -
getStringValueOrNull(): ?string获取字符串值或 null。 -
getValue(): mixed获取混合值。
常见问题解答(FAQ)
问:为什么使用 PhpType 而不是 Psalm 或 PHPStan 等现有的代码检查工具?
答:虽然代码检查工具功能强大,但 PhpType 是一个轻量级的解决方案,专门用于处理由于数组结构中的类型不匹配而导致的代码检查警告。它提供了一个简单易用的接口,为解决此类问题提供了另一种方法。
问:可以在生产代码中使用 PhpType 吗?
答:是的,PhpType 旨在用于生产代码。它非常适合生产使用,没有任何问题。
问:为什么不用 symfony/serializer 等反序列化库来处理数组数据?
A: 序列化库,如symfony/serializer,非常适合通过将数据结构转换为对象来处理复杂的数据结构。PhpType更适合需要直接操作数组的情况,例如处理遗留代码或无法立即重构的情况。
Q: 如何使用PhpType处理代码检查警告?
A: PhpType通过提供一种简单的方法来验证数组值、确保类型正确性和抑制PHPStan等代码检查工具的警告,帮助消除代码检查警告。请查看文档中的示例和使用细节。
致谢
- EditorConfig:IDE代码风格设置。
- PHPUnit:PHP的测试框架。
- PHP CodeSniffer:PHP编码标准检查和修复工具。
- PHP Insights:代码质量和架构分析工具。
- PHP Metrics:PHP指标生成器。
- PHPStan:PHP静态分析工具。
- Psalm:PHP的静态分析工具。
- Composer:PHP的依赖管理。
贡献
想要贡献?所有贡献都受欢迎。阅读贡献指南。
问题
如果您有疑问,请通过@sandro_m_m发推文或创建一个问题。
许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。
**~ 分享就是关爱 ~**