didix16/php-hydrator

一个简单的库,使用 hydration 模式填充对象,根据不同的数据源。

v1.0.1 2021-08-06 22:25 UTC

This package is auto-updated.

Last update: 2024-09-10 15:25:30 UTC


README

一个简单的库,使用 hydration 模式填充对象,根据不同的数据源。

内容

什么是数据 hydration

数据 hydration 是将数据导入到对象中。当一个对象等待填充数据时,这个对象等待被 hydration。这种 hydration 的来源可以是数据湖或其他数据源。存在多种数据 hydration 方法,以正确选择并填充对象以适当的数据

安装

composer require didix16/php-hydrator

用法

class MyModel  {

    private $property1;

    private $property2;

    ...
}

// this is an hydrator based on PHP reflection
$hydrator = new ReflectionHydrator();
$model = new MyModel();

$hydrator->hydrate([
    'property1' => 'value1',
    'propery2' => 'value2'
], $model);

//$model->getProperty1() === 'value1'
//$model->getProperty2() === 'value2'

$data = $hydrator->extract($model);

// data = ['property1' => 'value1', 'property2' => 'value2']
class MyModel implements  \ArrayAccess {

    protected $property1;

    protected $property2;

    // Implementation of ArrayAccess interface methods
    ...
}

// this is an hydrator based on object array serialization
$hydrator = new ArraySerializableHydrator();

$model = new MyModel();

$hydrator->hydrate([
    'property1' => 'value1',
    'propery2' => 'value2'
], $model);

//$model->getProperty1() === 'value1'
//$model->getProperty2() === 'value2'

$data = $hydrator->extract($model);

// data = ['property1' => 'value1', 'property2' => 'value2']

待办事项

实现 ObjectPropertyHydrator

实现 ClassMethodsHydrator

更多信息请查看