kregel/transformer

此包接受一个数组,将其映射到新的值,并输出这些新值

dev-master 2018-05-10 17:30 UTC

This package is auto-updated.

Last update: 2024-09-16 08:06:34 UTC


README

此包旨在接受一个数据数组并将其“转换”为与另一个数组模式匹配。

如何使用它?

use Kregel\Transform\Transformer;

$dataTransformer = new Transformer([
    'NAME' => 'Austin Kregel
], [
    'NAME' => 'full_name'
]);

$dataTransformer->transform();

或者

use Kregel\Transform\Transformer;

$dataTransformer = new Transformer;

$dataTransformer->setOriginalFeed([
    'NAME' => 'Austin Kregel'
])

$dataTransformer->setKeys([
    'NAME' => 'full_name'
]);

$dataTransformer->transform();

然后转换将返回一个数组

[
    'full_name' => 'Austin Kregel'
]

如果你使用laravel,可以使用LaravelModelTransformer为你的模型获得相同的功能。

class User extends LaravelModelTransformer 
{
    public $fillable = [
        'full_name'
    ];
    
    public function posts()
    {
        return $this->hasMany(Post::class);
    }

    public function getKeys()
    {
        return [
            'full_name' => 'name',
            'posts' => 'blogPosts'
        ];
    }
}

然后你可以使用

$user = User::first();

$user->transform();

这可以用作什么?

嗯,你可以用它做的列表是不可计数的……我计划用它来构建一个优雅地变老的API。就像Stripe支持他们API的旧版本一样。这让我们作为开发者可以改变我们接收的数据并将其放入我们需要的格式。只要我们控制它,API可以升级多次,我们只需要重新映射输入/输出到相应的值,它就可以正常工作。