nwidart/laravel-normalizer

Laravel 数据库存储前数据格式化包。

0.2 2016-07-27 07:11 UTC

This package is auto-updated.

Last update: 2024-09-08 07:00:37 UTC


README

Latest Version on Packagist Software License Build Status Scrutinizer Coverage SensioLabsInsight Quality Score Total Downloads

此包帮助您在将数据保存到数据库之前对其进行格式化。目标是拥有独立处理的单独类来处理数据格式化,从而可以独立进行测试。

安装

通过Composer

$ composer require nwidart/laravel-normalizer

用法

1. 添加特性

在希望数据格式化的模型上添加Nwidart\LaravelNormalizer\Traits\CanNormalizeData特性。

2. 创建格式化类

您的格式化类需要实现Nwidart\LaravelNormalizer\Contracts\Normalizer接口。该接口将添加normalize(array $data)方法。

示例

use Nwidart\LaravelNormalizer\Contracts\Normalizer;

final class CustomNormalizer implements Normalizer
{
    /**
     * Normalize the given data
     * @param array $data
     * @return array
     */
    public function normalize(array $data)
    {
        if (array_key_exists('name', $data)) {
            $data['name'] = strtoupper($data['name']);
        }

        return $data;
    }
}

此方法需要返回$data数组。在这里,您可以按需更改接收到的数据。

3. 添加normalizers类属性

在同一模型上添加一个protected $normalizers属性。这是您列出格式化器的位置,为数组形式。

示例

use Illuminate\Database\Eloquent\Model;
use Nwidart\LaravelNormalizer\Traits\CanNormalizeData;

class Product extends Model
{
    use CanNormalizeData;
    protected $normalizers = [CustomNormalizer::class];
}

4. 在保存/更新时格式化数据

现在您可以开始格式化数据了。例如,这可以在您的存储库类中完成。

示例

public function create($data)
{
    $data = $this->model->normalize($data);

    return $this->model->create($data);
}

变更日志

请参阅CHANGELOG以获取更多信息。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。

安全

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

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。