joshbrw/entity-transformers

v0.1.2 2017-05-30 10:21 UTC

This package is auto-updated.

Last update: 2024-08-28 23:14:47 UTC


README

本项目提供了一个标准化的实体转换器基类,可用于将实体/对象转换成数组。这些转换器的主要用途是API响应。

示例

<?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
        ];
    }
}

然后可以用来转换单个实体

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

或者转换Illuminate集合中的实体。

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

您还可以使用转换标志在运行时设置条件,例如

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