jotaen/fractal-response

在Laravel响应中使用Transformers

v1.0.0 2015-06-09 21:50 UTC

This package is not auto-updated.

Last update: 2024-10-02 07:34:06 UTC


README

Build Status Scrutinizer Code Quality Latest Release

使用FractalReponse,您可以轻松使用Fractal Transformers来序列化Laravel响应对象。

FractalResponse类继承自Illuminate\Http\Response。此外,您将您的Leage\Fractal-transformer传递给with()-方法,以便您的响应可以自动按照您希望的方式序列化。这对于编写REST服务特别有帮助,在这些服务中,您必须提供定义良好的数据结构。

安装

最简单的方法是将FractalResponse作为依赖项添加到您的composer.json文件中

require: {
    "jotaen/fractal-response": "1.x"
}

示例

<?php namespace App\Http\Controllers;

use League\Fractal;
use Laravel\Lumen\Routing\Controller as BaseController;

use FractalResponse\FractalResponse as Response;

class Controller extends BaseController
{
    public function showOneBook()
    {
      $book = new Book();
      $response = new Response($book, 200);
      $response->with(new BookTransformer());
      return $response;
    }

    public function showSeveralBooks()
    {
      $books = [ new Book(), new Book() ];
      $response = new Response($books, 200);
      $response->with(new BookTransformer());
      return $response;
    }
}


class Book 
{
  public function title() { return 'Help, i am an elephant!'; }
}

class BookTransformer extends Fractal\TransformerAbstract
{
  public function transform($foo)
  {
      return [
          'Title'      => $foo->title(),
      ];
  }
}