maxipost/form-strategy

There is no license information available for the latest version (v1.1.1) of this package.

Form strategy for hydration

v1.1.1 2019-06-11 15:11 UTC

README

composer require maxipost/form-strategy

Example hydrate

(new FormStrategyBuilder)->buildFromArray(
    [
        FormStrategyBuilder::DTO => TestClass\TestClass::class,
        FormStrategyBuilder::NESTED_FIELDS => [
            'testField1' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
            ],
            'testField2' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::NESTED_FIELDS => [
                    'testField3' => [FormStrategyBuilder::DTO => TestClass\TestClass::class],
                ],
            ],
            'testField4' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::IS_ARRAY => true,
            ],
            'testField5Single' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::SINGLE_NAME => 'test',
            ],
        ],
    ]
)->hydrate([
        'testField1' => ['test' => 'test'],
        'testField2' => [
            'test' => 'test',
            'testField3' => ['test' => 'test'],
        ],
        'testField4' => [
            ['test' => 'test'],
            ['test' => 'test'],
        ],
        'testField5Single' => 'single',
]);

Example extract

(new FormStrategyBuilder)->buildFromArray([
    FormStrategyBuilder::DTO => TestClass\TestClass::class,
    FormStrategyBuilder::NESTED_FIELDS => [
        'testField1' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
        ],
        'testField2' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::NESTED_FIELDS => [
                'testField3' => [FormStrategyBuilder::DTO => TestClass\TestClass::class],
            ],
        ],
        'testField4' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::IS_ARRAY => true,
        ],
        'testField5Single' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::SINGLE_NAME => 'test',
        ],
    ],
])->extract(
    $data
);