alexpts/php-typecast

简单的类型转换请求数据

1.2.2 2018-03-09 14:32 UTC

This package is auto-updated.

Last update: 2024-09-15 03:03:34 UTC


README

SensioLabsInsight

Build Status Code Coverage Code Climate Scrutinizer Code Quality

类型转换

安装

composer require alexpts/php-typecast

示例

$body = [
    'title' => 'Some',
    'user' => [
        'name' => 'Alex'
        'age' => '29',
        'isAdmin' = 'false',
    ],
    'friendsIds' => ['1', '2', '3', 4],
    'date' => '11-12-2017',
    'date2' => '11-12-2017',
];

$caster = new TypeCast(new DeepArray);

// shot format
$data = $caster->cast($body, [
    'friendsIds' => ['array', ['each' => ['int']]],
    'title' => ['string'],
    'user' => ['array'],
    'user.name' => ['string'],
    'user.age' => ['int'],
    'user.isAdmin' => ['bool'],
    'date' => ['datetime'],
    'date2' => ['datetime', ['datetimeFormat' => ['Y-m-d']]], // full format
]);

/*
$data ==== [
    'title' => 'Some',
    'user' => [
        'name' => 'Alex'
        'age' => 29,
        'isAdmin' = false,
    ],
    'friendsIds' => [1, 2, 3, 4],
    'date' => new \DateTime('11-12-2017'),
    'date2' => '2017-12-11',
];
*/

类型

string

设置为字符串类型

bool

设置为布尔类型

int

设置为整数类型

array

设置为数组类型

float

设置为浮点类型

object

设置为浮点类型

null

设置为null类型

numbers

从字符串中移除所有非数字符号

each

将每个数组元素转换为描述类型(见上面示例)

datetime

将值转换为默认时区的\DateTime对象

datetimeFormat

通过格式化方法将\DateTime对象转换为字符串

自定义转换类型

您可以通过TypeCast服务的method方法添加自定义转换

public function registerType(string $name, callable $handler): self