abacaphiliac / zend-transformer

提取和填充,外加秘制酱料。

0.1.1 2017-03-06 03:33 UTC

This package is auto-updated.

Last update: 2024-08-25 11:43:40 UTC


README

Scrutinizer Code Quality Code Coverage Build Status

abacaphiliac/zend-transformer

一个基于Zend Framework提取、填充和验证抽象的对象到对象ETL包。

包含一个PluginManager,通过应用程序配置注册转换规范,以及一个ZF2模块来连接所有配置。

需要 >=php55,当前支持ZF2但不支持ZF3。

安装

composer require abacaphiliac/zend-transformer

使用

在您的应用程序配置中注册转换器

return [
    'abacaphiliac/zend-transformer' => [
        'transformers' => [
            'SimpleFooBarToFizBuz' => [
                'inputClass' => \AbacaphiliacTest\FooBar::class,
                'keyMap' => [
                    'foo' => 'fiz',
                    'bar' => 'buz',
                ],
                'outputClass' => \AbacaphiliacTest\FizBuz::class,
            ],
        ],
    ],
];

转换一些数据!

$transformers = $serviceLocator->get('TransformerManager');
$transformer = $transformers->get('SimpleFooBarToFizBuz');

$input = new \AbacaphiliacTest\FooBar('Foo', 'Bar');
$output = $transformer->transform($input, \AbacaphiliacTest\FizBuz::class);

复杂配置

return [
    'abacaphiliac/zend-transformer' => [
        'transformers' => [
            'ComplexFooBarToFizBuz' => [
                'input_validator' => 'MyInputValidatorFromValidatorManager',
                'extractor' => 'MyExractorFromHydratorManager',
                'transformer' => 'MyTransformerFromServiceManager',
                'hydrator' => 'MyHydratorFromHydratorManager',
                'output_validator' => 'MyOutputValidatorFromValidatorManager',
            ],
        ],
    ],
    'service_manager' => [
        'invokables' => [
            'MyTransformerFromServiceManager' => function (array $data) {
                // Don't do this in production, as the config cannot be cached.
                return [];
            },
        ],
    ],
    'validators' => [
        'invokables' => [
            'MyInputValidatorFromValidatorManager' => \Zend\Validator\ValidatorChain::class,
            'MyOutputValidatorFromValidatorManager' => \Zend\Validator\ValidatorChain::class,
        ],
    ],
    'hydrators' => [
        'invokables' => [
            'MyExractorFromHydratorManager' => \Zend\Hydrator\ClassMethods::class,
            'MyHydratorFromHydratorManager' => \Zend\Hydrator\ClassMethods::class,
        ],
    ],
];

贡献

composer update && vendor/bin/phpunit

此库试图遵守PSR-1PSR-2PSR-4。如果您发现合规性疏忽,请通过pull request发送补丁。