Download the PHP package lukevear/laravel-transformer without Composer
On this page you can find all versions of the php package lukevear/laravel-transformer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download lukevear/laravel-transformer
More information about lukevear/laravel-transformer
Files in lukevear/laravel-transformer
Package laravel-transformer
Short Description A simple transformer for Laravel Eloquent models and collections.
License MIT
Informations about the package laravel-transformer
Laravel Transformer
Simple Eloquent and Collection transformation. Useful for ensuring that your API outputs are consistent and preventing code duplication.
Installation
Install the package using composer:
To register the package with Laravel, add the collowing to config/app.php
:
Optionally install the configuration file:
Creating Transformers
Creating transformers is easy. Simply extend the AbstractTransformer
class and implement your required logic.
Transformers only require a run
method. The run
method is where you will implement any logic required to transform your model/collection.
For example, the below could be used to create a consistent 'User API model' for clients to consume.
The Transformer
Usage
Automatic Transformation
You can optionally specify which transformer to use for each Model in your codebase, and specify which 'group' of transformers to use.
To setup automatic transformation, edit config/laravel-transformer.php
(ensure you ran the vendor:publish command above).
For example, if you have a v1
and v2
API, you may have the following in your configuration file:
In your global middleware you can then specify which transformation group to use depending on the API version being consumed:
You can then transform your User model in any controller using the following:
Inclusions
When manually creating a transformer you can optionally supply additional 'includes' that provide context to the transformer.
For example, you may wish to include the user's settings model alongside the user model. To achieve this you could implement something like this:
To tell the transformer that you wish to include settings, you'd use the following in your route/controller: