odan/hydrator

A high performance hydrator for PHP.

1.2.2 2018-02-12 14:23 UTC

README

A high performance hydrator for PHP.

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Requirements

  • PHP >= 7.1
  • MySQL

Installation

composer require odan/hydrator

Features

ObjectProperty

Any data key matching a publicly accessible property will be hydrated; any public properties will be used for extraction.

ClassMethod

Any data key matching a setter method will be called in order to hydrate; any method matching a getter method will be called for extraction.

Usage

// User entity
class User
{
    public $id;
    public $username;
    public $firstName;
    public $email;
}

// A row from the database
$userRow = [
    'id' => 1,
    'username' => 'admin',
    'first_name' => 'John Doe',
    'email' => 'john@example.com'
];

// Create the hydrator
$hydrator = new \Odan\Hydrator\ObjectProperty();

// Convert array to a new User object (with lower camel case properties)
$user = $hydrator->hydrate($userRow, new User());

print_r($user);

/*
User Object
(
    [id] => 1
    [username] => admin
    [firstName] => John Doe
    [email] => john@example.com
)
*/

// Convert User object to an array with lower camel case keys
$array = $hydrator->extract($user);

print_r($array);

/*
Array
(
    [id] => 1
    [username] => admin
    [first_name] => John Doe
    [email] => john@example.com
)
*/

Alternatives

License

The MIT License (MIT). Please see License File for more information.