maxipost/form-strategy

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

Form strategy for hydration

This package's canonical repository appears to be gone and the package has been frozen as a result.

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
);