PHP 5.3+
No commit activity in last 2 years
No release in over 2 years
There's a lot of open issues
A Laravel Service Provider for Fractal
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

 Project Readme

Laravel Fractal

A Laravel Service Provider for League/Fractal.


Installation

Add laravel-fractal to your composer.json file:

"require": {
    "gathercontent/laravel-fractal": "~1.0"
}

Get composer to install the package:

$ composer require gathercontent/laravel-fractal

Registering the Package

Register the service provider within the providers array found in app/config/app.php:

'providers' => array(
    // ...
    GatherContent\LaravelFractal\LaravelFractalServiceProvider::class
)

Add an alias within the aliases array found in app/config/app.php:

'aliases' => array(
    // ...
    'Fractal' => GatherContent\LaravelFractal\LaravelFractalFacade::class,
)

Configuration

To override the default configuration, you can publish the config files to your application. Artisan can do this automatically for you via the command line:

$ php artisan vendor:publish

Usage

Basic Example

Formatting a single item:

// routes.php
Route::get('/me', array('before' => 'auth', function () {
    return Fractal::item(Auth::user(), new UserTransformer);
}));

Formatting a collection:

// routes.php
Route::get('/comments', function () {
    return Fractal::collection(Comment::all(), new CommentTransformer);
});

Adding meta data:

// routes.php
Route::get('/comments', function () {
    return Fractal::collection(Comment::all(), new CommentTransformer, function ($resources) {
        $resources->setMetaValue('foo', 'bar');
    });
});

Returning a paginated collection:

// routes.php
Route::get('/comments', function () {
    return Fractal::collection(Comment::paginate(), new CommentTransformer);
});

Using a custom pagination adapter:

// routes.php
Route::get('/comments', function () {
    $comments = Comment::paginate();
    $adapter = new MyIlluminatePaginationAdapter($comments);
    return Fractal::collection($comments, new CommentTransformer, null, $adapter);
});