alexpts / php-typecast
简单的类型转换请求数据
1.2.2
2018-03-09 14:32 UTC
Requires
- php: ^7.1
- alexpts/php-tools: ^3.1
Requires (Dev)
- phpunit/phpunit: ^7.0
README
类型转换
安装
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