Provides integration for Laminas Hydrator with some spaceonfire
libraries.
Via Composer
$ composer require spaceonfire/laminas-hydrator-bridge
use spaceonfire\LaminasHydratorBridge\StdClassHydrator;
use spaceonfire\LaminasHydratorBridge\NamingStrategy\AliasNamingStrategy;
use spaceonfire\LaminasHydratorBridge\Strategy\BooleanStrategy;
use spaceonfire\LaminasHydratorBridge\Strategy\ScalarStrategy;
use spaceonfire\LaminasHydratorBridge\Strategy\NullableStrategy;
use spaceonfire\Type\BuiltinType;
$hydrator = new StdClassHydrator();
$hydrator->setNamingStrategy(new AliasNamingStrategy([
'firstName' => ['first_name', 'firstname'],
'lastName' => ['last_name', 'lastname'],
'rulesAccepted' => ['rules_accepted'],
]));
$hydrator->addStrategy('age', new NullableStrategy(new ScalarStrategy(BuiltinType::INT)));
$hydrator->addStrategy('rulesAccepted', new BooleanStrategy(['Y', 'y', 1], 'N', false));
$john = $hydrator->hydrate([
'first_name' => 'John',
'last_name' => 'Doe',
'rules_accepted' => 'y',
'age' => '25',
], new stdClass());
// $john->firstName === 'John';
// $john->lastName === 'Doe';
// $john->rulesAccepted === true;
// $john->age === 25;
$jane = $hydrator->hydrate([
'firstname' => 'Jane',
'lastname' => 'Doe',
'rules_accepted' => '',
'age' => null,
], new stdClass());
// $jane->firstName === 'John';
// $jane->lastName === 'Doe';
// $jane->rulesAccepted === false;
// $jane->age === null;
Please see CHANGELOG for more information on what has changed recently.
Report issues and send Pull Requests in the main spaceonfire repository. Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
The MIT License (MIT). Please see License File for more information.