2017 © Pedro Peláez
 

library class-mapper

Class Mapper

image

kozz/class-mapper

Class Mapper

  • Monday, November 3, 2014
  • by urakozz
  • Repository
  • 1 Watchers
  • 1 Stars
  • 5,101 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Class mapper

Build Status Coverage Status Scrutinizer Code Quality Latest Stable Version Latest Unstable Version License, (*1)

Mapping Class properties using JMS Serializer components, (*2)

Why to use it

ClassMapper can only fill simple maps and Normalizer performs type casting. So it works much faster than original JMS Serializer., (*3)

Usage

Create a Map class like this, (*4)


use JMS\Serializer\Annotation\Type; class Map { /** * @Type("integer") */ public $client_id; /** * @Type("integer") */ public $sender_id; /** * @Type("string") */ public $order_requisite; /** * @Type("string") */ public $order_warehouse; }

Using ClassMapper

Now let's map it, (*5)

use Kozz\Components\ClassMapper\ClassMapper;

$map = new Map();
$mapper = new ClassMapper($map);
$mapper->setAttributes([
  'client_id'=>1,
  'sender_id'=>2,
  'order_requisite'=>3,
  'order_warehouse'=>4,
]);

$map->order_id; // 1 (integer)
$map->sender_id; // 2 (integer)
$map->order_requisite; // 3 (integer)
$map->order_warehouse; // 4 (integer)

Using ClassMapper and Normalizer

Normalizer is decorator for ClassMapper. It reads @Type annotations and performs type casting, (*6)

use Kozz\Components\ClassMapper\ClassMapper;
use Kozz\Components\ClassMapper\Normalizer;

$map = new Map();
$mapper = new Normalizer(new ClassMapper($map));
$mapper->setAttributes([
  'client_id'=>'1str',
  'sender_id'=>'2str',
  'order_requisite'=>'3str',
  'order_warehouse'=>'4str',
]);

$map->order_id; // 1 (integer)
$map->sender_id; // 2 (integer)
$map->order_requisite; // '3str' (string)
$map->order_warehouse; // '4str' (string)

The Versions

03/11 2014

dev-master

9999999-dev http://github.com/urakozz/php-class-mapper

Class Mapper

  Sources   Download

MIT

The Requires

 

The Development Requires

mapper