dev-master
9999999-dev http://github.com/urakozz/php-class-mapperClass Mapper
MIT
The Requires
- php >=5.4.0
- jms/serializer *
- doctrine/cache *
The Development Requires
by Yury Kozyrev
mapper
Wallogit.com
2017 © Pedro Peláez
Class Mapper
Mapping Class properties using JMS Serializer components, (*2)
ClassMapper can only fill simple maps and Normalizer performs type casting. So it works much faster than original JMS Serializer., (*3)
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; }
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)
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)
Class Mapper
MIT
mapper