nordsoftware / lumen-fractal
Fractal module for the Lumen PHP framework.
Installs: 30 509
Dependents: 0
Suggesters: 1
Security: 0
Stars: 29
Watchers: 29
Forks: 1
Open Issues: 2
Requires
- php: >=5.6
- league/fractal: ^0.13
Requires (Dev)
- codeception/codeception: ^2.1
- codeception/specify: ^0.4.3
- codeception/verify: ^0.3.0
- laravel/lumen-framework: ^5.1
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2020-01-16 23:19:37 UTC
README
Fractal module for the Lumen PHP framework.
Requirements
Setup
Installation
Run the following command to install the package through Composer:
composer require nordsoftware/lumen-fractal
Configuration
Copy the configuration template in config/fractal.php
to your application's config
directory and modify according to your needs.
For more information see the Configuration Files section in the Lumen documentation.
Available configuration options:
- default_serializer - Default serializer to use for serialization, defaults to null
Bootstrap
Add the following lines to bootstrap/app.php
:
$app->register('Nord\Lumen\Fractal\FractalServiceProvider');
Optionally you can also use Nord\Lumen\Fractal\FractalMiddleware
to parse includes automatically from the request.
$app->middleware([ ..... 'Nord\Lumen\Fractal\Middleware\FractalMiddleware', ]);
Usage
You can now use Nord\Lumen\Fractal\FractalService
to access Fractal anywhere in your application.
Here is a few examples on how you can serialize data if you are using Eloquent:
public function getBook(FractalService $fractal, $id) { // load the book model ... return response()->json($fractal->item($book, new BookTransformer)->toArray()); }
public function listBooks(FractalService $fractal) { // load the book collection ... return response()->json($fractal->collection($books, new BookTransformer)->toArray()); }
Contributing
Please read the guidelines.
Running tests
Clone the project and install its dependencies by running:
composer install
Run the following command to run the test suite:
vendor/bin/codecept run unit
License
MIT, see LICENSE.