joshbrw/entity-transformers

4,896
Install
composer require joshbrw/entity-transformers
Latest Version:v0.1.2
PHP:>=7.0
License:MIT
Last Updated:May 30, 2017
Links: GitHub  ·  Packagist
Maintainer: joshbrw

Entity Transformation Flags

This project provides a base class for standardised Entity Transformers, which can be used to morph entities/objects into arrays. The primary use for these transformers is API Responses.

Example

<?php

use Joshbrw\EntityTransfomers\EntityTransformer;

class UserTransformer extends EntityTransformer
{

    /**
     * Transform a single Entity into an array
     * @param mixed $entity Entity instance
     * @return array
     */
    public function transform($entity): array
    {
        return [
            'id' => $entity->id,
            'title' => $entity->title,
            'first_name' => $entity->first_name,
            'last_name' => $entity->last_name,
            'email' => $entity->email,
            'permissions' => $entity->permissions,
            'age' => $this->getTransformationFlag('showAge') === true ? $entity->age : null
        ];
    }
}

Which can then be used to either transform a single entity:

$transformer = new UserTransformer;
$response = $transformer->transform($user);

or to transform an Illuminate Collection of entities.

$users = new \Illuminate\Support\Collection($data);
$transformer = new UserTransformer;
$response = $transformer->transform($users);

You can also use Transformation Flags to set conditions at runtime, such as:

$transformer = new UserTransformer;
$transformer->setTransformationFlag('showAge', true);
$response = $transformer->transform($user);