shetabit/transformer

以简单的方式转换或修改数组键

v2.0.1 2019-08-27 08:23 UTC

This package is auto-updated.

Last update: 2024-08-26 21:02:02 UTC


README

Laravel 转换器

轻松转换数组键。

内容列表

安装

通过 Composer

$ composer require shetabit/transformer

如何使用

您可以使用 get($transformer) 方法转换数组键。

$originalData = [
    'f_name' => 'mahdi',
    'l_name' => 'khanzadi'
];

$role = [
    'f_name' => 'first_name',
    'l_name' => 'last_name',
];

$transformer = new Transformer($role);

$transformedData = (new Transform($originalData))->get($transformer);

/*
data:
[
    'first_name' => 'mahdi',
    'last_name' => 'khanzadi'
]
*/

或者,您可以使用 from($currentFormat)to($destinationFormat)

$originalData = [
    'f_name' => 'mahdi',
    'l_name' => 'khanzadi'
];

$transformer = new Transformer();

// convert f_name to first_name
$transformer->from('f_name')->to('first_name');

// convert l_name to last_name
$transformer->from('l_name')->to('last_name');

$transformedData = (new Transform($originalData))->use($transformer)->get();

/*
data:
[
    'first_name' => 'mahdi',
    'last_name' => 'khanzadi'
]
*/

如您所见,您可以使用 setOriginalData 方法动态设置原始数据。

转换器

您可以使用 Shetabit\Transform\Classes\Transformer 来转换数组键。

如果您有复杂的数组结构,可以通过实现 TransformerInterface 创建自定义转换器

// at the top
use Shetabit\Transformer\Contracts\TransformerInterface;

// ...

class CustomTranformerName implements TransformerInterface
{
    /**
     * Transform data
     *
     * @return array
     */
    public function transform(array $data) : array
    {
        return [
            'user_name' => $data['u'],
            'password' => $data['p']
        ];
    }
}

// use your custom transformer 
$originalData = [
    'u' => 'mahdikhanzadi',
    'p' => '246810'
];

$transformer = new CustomTranformerName();

$transformedData = (new Transform($originalData))->get($transformer);

/*
data:
[
    'username' => 'mahdikhanzadi',
    'password' => '246810'
]
*/

变更日志

请参阅 变更日志 了解最近的变化。

贡献

有关详细信息,请参阅 贡献指南行为准则

安全

如果您发现任何与安全相关的问题,请通过电子邮件 khanzadimahdi@gmail.com 联系,而不是使用问题跟踪器。

鸣谢

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件