battis/hydratable

使用默认值和覆盖值来初始化序列化对象

v0.1.1 2023-07-04 21:21 UTC

This package is auto-updated.

Last update: 2024-09-03 21:32:31 UTC


README

Latest Version codecov

使用默认值和覆盖值来初始化序列化对象

此功能旨在简化执行DRY(不要重复自己)原则的参数,并根据预设默认值进行初始化。

安装

composer require battis/hydratable

使用

这可以作为一个特性添加到类中,或者作为一个可调用的类。

use Battis\Hydratable\Hydratable;

class MyObject
{
    use Hydratable;

    private static $DEFAULTS = [
      'foo' => 'bar',
      'argle' => 'bargle'
    ]

    private $options;

    public function __construct(array $params = [])
    {
        $this->options = $this->hydrate($params, self::$DEFAULTS);
    }
}

然后可以实例化一个MyObject的实例

$o = new MyObject(['baz' => 123, 'argle' = 'BaRgLe']);

/*
$o->options = [
    'foo' => 'bar',
    'baz' => 123,
    'argle' => 'BaRgLe'
]
*/

或者,我们也可以简单地实例化Hydrate并一次性使用它

$hydrate = new Battis\Hydratable\Hydrate();
$options = $hydrate($params, $defaults);