Skip to content
This repository was archived by the owner on Apr 13, 2021. It is now read-only.

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wandu Restifier

Latest Stable Version Latest Unstable Version Total Downloads License

Transform Data to the RESTFul API Output.

Installation

composer require wandu/restifier

Documentation

Example

$restifier = new Restifier();
$restifier->addTransformer(SampleUser::class, new SampleUserTransformer());
$restifier->addTransformer(SampleCustomer::class, new SampleCustomerTransformer());

$user = new SampleUser([
    'username' => 'wan2land',
    'customer' => new SampleCustomer([
        'address' => 'seoul blabla',
        'paymentmethods' => [], // critical data
    ]),
]);

static::assertEquals([
    "username" => "wan2land",
    'customer' => [
        'address' => 'seoul blabla',
    ],
], $restifier->restify($user));

Restifier

class Restifier {
    public function addTransformer(string $classNameOrInterfaceName, callable $transformer);
    
    public function restify($resource, array $includes = [], callable $transformer = null): array|null
    
    public function restifyMany($resource, array $includes = [], callable $transformer = null): array
} 

Transformer

Transformer is callable. It is recommended to use the callable class that contain __invoke method.

Example

<?php
namespace Wandu\Restifier\Sample;

use Wandu\Restifier\Contracts\Restifiable;

class SampleUserTransformer
{
    public function __invoke(SampleUser $user, Restifiable $restifier, array $includes = [])
    {
        return [
            'username' => $user->username,
            'customer' => $restifier->restify($user->customer),
        ];
    }

    public function customer(SampleUser $user, Restifiable $restifier, array $includes = [])
    {
        return [
            'customer' => $restifier->restify($user->customer, $includes),
        ];
    }

    public function profile(SampleUser $user, Restifiable $restifier, array $includes = [])
    {
        return [
            'profile' => $user->profile,
        ];
    }
}

About

[READ ONLY] Transform Data to the RESTFul API Output.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages