yzen.dev/typer

从动态实例获取属性

0.2.1 2024-02-23 21:49 UTC

This package is auto-updated.

Last update: 2024-09-23 23:10:05 UTC


README

Packagist Version GitHub Workflow Status (with branch) Coverage Packagist Downloads Packagist Downloads

Mutation testing badge type-coverage psalm-level

这是一个简单的辅助包,有助于使代码更简洁。通常,当处理来自第三方源(如网站解析)的数据时,您可能需要编写数百行代码来检查特定属性。

很可能,您编写了很多if或三元运算符,代码看起来可能像这样

$user = new User();
$user->id = isset($dynamicArray['id']) ? (int)$dynamicArray['id'] : null;
$user->email = isset($dynamicArray['email']) ? (string)$dynamicArray['email'] : null;
$user->balance = isset($dynamicArray['balance']) ? (float)$dynamicArray['balance'] : null;
$user->blocked = isset($dynamicArray['blocked']) ? ($dynamicArray['blocked'] === 'true' ? true : false) : null;

当使用 Typer 时,您无需担心进行许多检查和转换。只需将代码包裹在 typer 方法中

$user = new User();
$user->id = Typer::int($dynamicArray, 'id');
$user->email = Typer::string($dynamicArray, 'email');
$user->balance = Typer::float($dynamicArray, 'balance');
$user->blocked = Typer::bool($dynamicArray, 'blocked');

如果在没有参数的情况下,您需要指定除了“null”之外的其他默认值,您只需将其作为第二个参数传递

$user->balance = Typer::float($dynamicArray, 'balance', 10.0);

安装

此包可以通过composer安装

composer require yzen.dev/typer