2017 © Pedro Peláez
 

library cybertron

Fractal Transformer generator for Laravel

image

lasselehtinen/cybertron

Fractal Transformer generator for Laravel

  • Wednesday, January 25, 2017
  • by lasleh
  • Repository
  • 2 Watchers
  • 9 Stars
  • 1,492 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 6 % Grown

The README.md

Fractal Transformer generator for Laravel

Latest Version on Packagist Software License Build Status Quality Score StyleCI Total Downloads, (*1)

The package provides an easy way to generate Fractal Transformers for your Laravel applications. The package automatically scans the models Eloquent relationships and attributes and generates the Transformer boiler plate. It also automatically adds casting for integer and boolean fields., (*2)

Example

Model

class TestModel extends Model
{
    /**
     * Example hasMany relationship
     */
    public function hasManySomethings()
    {
        return $this->hasMany(SomeOtherModel::class);
    }
}

Migration

    public function up()
    {
        Schema::create('test_models', function (Blueprint $table) {
            $table->increments('id_field');
            $table->boolean('boolean_field');
            $table->string('string_field');
        });
    }

Result

<?php

namespace App;

use League\Fractal;
use \lasselehtinen\Cybertron\Tests\TestModel;

class TestTransformer extends Fractal\TransformerAbstract
{
    /**
     * List of resources to automatically include
     *
     * @var  array
     */
    protected $defaultIncludes = [
        'hasManySomethings',
    ];

    /**
     * Transform TestModel
     *
     * @param   TestModel $testModel
     * @return  array
     */
    public function transform(TestModel $testModel)
    {
        return [
            'id_field' => (integer) $testModel->id_field,
            'boolean_field' => (boolean) $testModel->boolean_field,
            'string_field' => $testModel->string_field,
        ];
    }

    /**
     * Include HasManySomethings
     *
     * @param  TestModel $testModel
     * @return \League\Fractal\Resource\Collection
     */
    public function includeHasManySomethings(TestModel $testModel)
    {
        return $this->collection($testModel->hasManySomethings, new SomeOtherModelTransformer);
    }

}

Installation

You can pull in the package via composer: ``` bash $ composer require lasselehtinen/cybertron --dev, (*3)


Since you only need the generator for development, don't add the generator the providers array in `config/app.php`. Instead add it to `app/Providers/AppServiceProvider.php`as shown below: ```php public function register() { if ($this->app->environment() == 'local') { $this->app->register(lasselehtinen\Cybertron\CybertronServiceProvider::class); } }

Usage

Run the artisan command make:transformer and give the Transformers name and the model with the full namespace like so:, (*4)

php artisan make:transformer PostTransformer --model=\\App\\Post

Similar way as in Laravels built-in generators, you can provide a namespace for the generated Transformer., (*5)

php artisan make:transformer \\App\\Api\\V1\\Transformers\\PostTransformer --model=\\App\\Post

License

The MIT License (MIT). Please see License File for more information., (*6)

The Versions

25/01 2017

dev-master

9999999-dev

Fractal Transformer generator for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Lasse Lehtinen

25/01 2017

0.1.0

0.1.0.0

Fractal Transformer generator for Laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Lasse Lehtinen