VICEMedia / laravel-fractal by maxbrokman

Fractal helpers for Laravel 5
1,475
1
4
Package Data
Maintainer Username: maxbrokman
Maintainer Contact: max.brokman@vice.com (Max Brokman)
Package Create Date: 2016-07-13
Package Last Update: 2022-03-26
Language: PHP
License: MIT
Last Refreshed: 2024-11-23 03:16:04
Package Statistics
Total Downloads: 1,475
Monthly Downloads: 2
Daily Downloads: 0
Total Stars: 1
Total Watchers: 4
Total Forks: 1
Total Open Issues: 1

Another Fractal Service Provider for Laravel 5 and Lumen

Latest Version on Packagist Build Status Software License

Fractal lets you present API data in a consistent way, by acting as an anti-corruption layer between your frontend and backend.

Read up on Fractal here.

Installation

Require this package

composer require vice/laravel-fractal

And then add the following to the service providers in app.php

Vice\LaravelFractal\FractalServiceProvider::class,

Usage

To send a JSON representation of a single entity to the frontend simply

public function show($id)
{
    //...

    fractalResponse()->item($thing, new ThingTransformer);
}

To send a JSON representation of a collection of entities to the frontend simply

public function index()
{
    //...

    fractalResponse()->collection($things, new ThingTransformer);
}

The collection method also supports paginators, and will automatically append their state under a meta key

If you need to transform data without immediately using it in a response you may inject Vice\LaravelFractal\FractalService into your controller / class and use it as so:

$json = $this->fractalService->item($thing, new ThingTransformer)->toJson();

Contributing

Please open any issues or pull requests on GitHub. This package is maintained by max.brokman@vice.com

For PRs please run the style fixer (vendor/bin/php-cs-fixer fix) before submitting.