Download the PHP package loadsys/cakephp_serializers without Composer
On this page you can find all versions of the php package loadsys/cakephp_serializers. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download loadsys/cakephp_serializers
More information about loadsys/cakephp_serializers
Files in loadsys/cakephp_serializers
Package cakephp_serializers
Short Description A solution to serialize CakePHP response to JSON and correspondingly deserialize JSON into CakePHP data arrays, designed primarily around building REST APIs with Ember and Ember Data.
License MIT
Homepage https://github.com/loadsys/CakePHP-Serializers
Informations about the package cakephp_serializers
CakePHP-Serializers
A solution to serialize CakePHP response to JSON and correspondingly deserialize JSON into CakePHP data arrays, designed primarily around building REST APIs with Ember and Ember Data.
This plugin is designed to match the Ember Data and the DS.ActiveModelAdapter for serialization and deserialization of CakePHP generated responses.
Questions on any implementation details can be answered typically using the Test Cases as the final authoritative answer.
This is currently not fully production ready - be warned bugs/issues may exist.
This README is split into the following sections, with additional README documents covering certain topics.
- Base Use Case
- Requirements
- Installation
- Basic Setup
- Error and Exception Handling Setup
- Custom Bake Templates
- Advanced Examples
- Contributing
- License
- Copyright
Additional README Documents:
- Serialization
- Deserialization
- Exceptions
Basic Use Case
The basic concept for this plugin is to create an end to end solution for serializing and deserializing CakePHP responses into JSON. This plugin is primarily designed around the use of Ember and Ember Data with the ActiveModelAdapter.
So serializing a CakePHP model data array:
into:
And to perform the reverse, by deserializing data passed in the request body:
or:
into
Requirements
- PHP >= 5.4.0
- CakePHP >= 2.3
Installation
Composer
- Run this shell command
Git
Basic Setup
Load the plugin and be sure that bootstrap is set to true:
If you are planning on using this plugin, to deserialize data in an HTTP request a few other changes are required:
When deserializing data and setting your CakePHP controller to respond to REST HTTP requests you will also need to add:
The CakePHP book has more information on doing REST APIs with CakePHP and this feature.
Error and Exception Handling Setup
Errors and Exceptions are handled via a separate CakePHP plugin, included via Composer: SerializersErrors
Please read the documentation there for more information on the specifics.
Modify your app/Config/core.php
file to use the Custom Exceptions/Error
handling in SerializersErrors.
This does two things:
- Errors and Exceptions get output as correctly formatted JSON API, JSON or HTML depending on the request type
- Allows the use of Custom Exceptions that match Ember Data exceptions for error cases
Custom Bake Templates
There are custom bake templates included in this project for baking your CakePHP
Controller classes. Use the serializers
template when baking a Controller, to
generate a Controller to work with the Serializers Plugin.
The Custom Bake Templates include using the Custom Exception Classes from the above section to provide feedback that matches Ember Data's expectations.
Advanced Examples
We can serialize both multiple records:
into:
And serialize sub model records, even if there are multiple records:
into
The same with deserialize both multiple records:
into
And deserialize sub model records, even if there are multiple records:
into
If there is a second top level model in the data to be serialized it is moved to a property of the first model
into:
If there is a second top level model in the data to be deserialized, it is ignored:
into
Contributing
Reporting Issues
Please use GitHub Isuses for listing any known defects or issues.
Development
When developing this plugin, please fork and issue a PR for any new development.
The Complete Test Suite for the Plugin can be run via this command:
./lib/Cake/Console/cake test Serializers AllSerializers
License
Copyright
All versions of cakephp_serializers with dependencies
ext-json Version *
composer/installers Version ~1.0
loadsys/cakephp-serializers-errors Version ~1.0