rexlabs / smokescreen
Smokescreen is a PHP library for transforming and serializing data such as API responses.
Installs: 1 208
Dependents: 1
Suggesters: 0
Security: 0
Stars: 9
Watchers: 20
Forks: 2
Open Issues: 3
Requires
- php: >=7.2 <8.4
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.5.0
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-10-30 04:58:54 UTC
README
Overview
Smokescreen is a PHP library for transforming data. This is ideal for transforming and serializing API responses but can be applied to many scenarios.
See also Smokescreen Laravel Library
Features
- Simple intuitive interface
- Transform any type of data (arrays, models, etc.)
- Embedding of related resources (aka. includes)
- Declarative includes
- Includes auto-wiring
- Declarative fields (including sparse field sets)
- Eager loading
- Flexible transformation and serialization
- Support for lazy loading
- No other dependencies
Usage
To use Smokescreen, you define transformer for each resource, and
then call either the Smokescreen item()
or collection()
method to
transform the data.
Full documentation is available from: https://smokescreen-docs.netlify.com/
Requirements and dependencies
- PHP >= 7.0
So vanilla.
Installation
Install package via composer:
composer require rexlabs/smokescreen
Laravel package
We provide a Laravel wrapper package which provides some nice conveniences for working within the Laravel framework: rexlabs/laravel-smokescreen
See the Github repository for more information:
Tests
To run phpunit tests:
composer run tests
Feel free to add more tests.
FAQ
Why call it "Smokescreen"
Great question, thanks for asking. Our team racked our brain for several hours to come up with the perfect name for this package. In the end we went with Smokescreen because there is a transformer named smokescreen and it sounds cool.
Why wouldn't I just use Fractal
We took all the good ideas from Fractal, and made it more extensible and safer for children.
Contributing
Pull-requests are welcome. Please ensure code is PSR compliant. Smokescreen on Github
Who do I talk to?
Talk to team #phoenix, or one of these people:
- Jodie Dunlop jodie.dunlop@rexsoftware.com.au
- Alex Babkov alex.babkov@rexsoftware.com.au
About
- Author: Jodie Dunlop
- License: MIT
- Copyright (c) 2018 Rex Software Pty Ltd