PHPackages                             divspace/responder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. divspace/responder

ActiveLibrary[HTTP &amp; Networking](/categories/http)

divspace/responder
==================

A Laravel 4 wrapper for Fractal to handle API responses

v1.0.1(10y ago)0156MITPHPPHP &gt;=5.4.0

Since Oct 23Pushed 10y ago1 watchersCompare

[ Source](https://github.com/divspace/responder)[ Packagist](https://packagist.org/packages/divspace/responder)[ RSS](/packages/divspace-responder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (3)Versions (3)Used By (0)

Responder
=========

[](#responder)

A **Laravel 4** wrapper for [Fractal](http://fractal.thephpleague.com) to handle API responses. For **Laravel 5**, please [go here](https://github.com/salebab/larasponse/tree/L5).

Installation
------------

[](#installation)

Add **Responder** to your `composer.json` file by running the following command:

```
$ composer require divspace/responder
```

Then run the following command:

```
$ composer update
```

### Register Package

[](#register-package)

Add the following line to the end of the `providers` array in `app/config/app.php`:

```
'providers' => array(
    // ...
    'Divspace\Responder\ResponderServiceProvider'
)
```

Usage
-----

[](#usage)

There are three types of responses you can return:

1. Item
2. Collection
3. Paginated Collection

Here are examples of all three types in a single controller:

```
use Divspace\Responder\Responder;
use Data\Transformers\UserTransformer;

class UserController extends BaseController {
    protected $response;

    public function __construct(Responder $response) {
        $this->response = $response;

        /**
         * Fractal parseIncludes() method
         * http://fractal.thephpleague.com/transformers/
         */
        if(isset($_GET['include'])) {
            $this->response->parseIncludes($_GET['include']);
        }
    }

    /**
     * Display a paginated list of users
     */
    public function index() {
        return $this->response->paginatedCollection(User::paginate());
    }

    /**
     * Display a single user
     */
    public function item($id) {
        return $this->response->item(User::find($id), new UserTransformer());
    }

    /**
     * Display all users
     */
    public function collection() {
        return $this->response->collection(User::all(), new UserTransformer());
    }
}
```

The `Data\Transformers\UserTransformers` file might look something like this (with an example of how to use the `parseIncludes()` method from the previous example):

```
