Download the PHP package nilportugues/haljson-bundle without Composer
On this page you can find all versions of the php package nilportugues/haljson-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nilportugues/haljson-bundle
More information about nilportugues/haljson-bundle
Files in nilportugues/haljson-bundle
Package haljson-bundle
Short Description HAL+JSON API Transformer Bundle for Symfony 2 and Symfony 3
License MIT
Homepage http://nilportugues.com
Informations about the package haljson-bundle
Symfony HAL+JSON Transformer Bundle
For Symfony 2 and Symfony 3
- Installation
- Usage
- Creating the mappings
- Outputing API Responses
- HAL+JSON Responses
- Integration with NelmioApiDocBundleBundle
- Quality
- Contribute
- Support
- Authors
- License
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
Usage
Creating the mappings
Mapping directory
Mapping files should be located at the app/config/serializer
directory. This directory must be created.
It can be also be customized and placed elsewhere by editing the app/config/config.yml
configuration file:
Mapping files
The HAL+JSON transformer works by transforming an existing PHP object into its JSON representation. For each object, a mapping file is required.
Mapping files must be placed in the mappings directory. The expected mapping file format is .yml
and will allow you to rename, hide and create links relating all of your data.
For instance, here's a quite complex Post
object to demonstrate how it works:
And the series of mapping files required:
Outputing API Responses
It is really easy, just get an instance of the HalJsonSerializer
from the Service Container and pass the object to its serialize()
method. Output will be valid JSON-API.
Here's an example of a Post
object being fetched from a Doctrine repository.
Finally, a helper trait, HalJsonResponseTrait
is provided to write fully compilant responses wrapping the PSR-7 Response objects provided by the original JSON API Transformer library.
Output:
Response objects (HalJsonResponseTrait)
The following HalJsonResponseTrait
methods are provided to return the right headers and HTTP status codes are available:
Integration with NelmioApiDocBundleBundle
The NelmioApiDocBundle is a very well known bundle used to document APIs. Integration with the current bundle is terrible easy.
Here's an example following the PostContoller::getPostAction()
provided before:
And the recommended configuration to be added in app/config/config.yml
Quality
To run the PHPUnit tests at the command line, go to the tests directory and issue phpunit.
This library attempts to comply with PSR-1, PSR-2, PSR-4 and PSR-7.
If you notice compliance oversights, please send a patch via Pull Request.
Contribute
Contributions to the package are always welcome!
- Report any bugs or issues you find on the issue tracker.
- You can grab the source code at the package's Git repository.
Support
Get in touch with me using one of the following means:
- Emailing me at [email protected]
- Opening an Issue
Authors
License
The code base is licensed under the MIT license.
All versions of haljson-bundle with dependencies
nilportugues/hal Version ^2.0
symfony/psr-http-message-bridge Version ^1.0