Download the PHP package brandonlamb/php-hal without Composer
On this page you can find all versions of the php package brandonlamb/php-hal. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download brandonlamb/php-hal
More information about brandonlamb/php-hal
Files in brandonlamb/php-hal
Package php-hal
Short Description REST HAL library as a C-extension for PHP
License MIT
Informations about the package php-hal
php-hal
PHP library for representing HAL resources for REST API
PhpHal
PhpHal is a library for representing and consuming resources in different hypermedia formats.
A resource in a [HATEOAS API] (http://en.wikipedia.org/wiki/HATEOAS) must describe its own capabilities and interconnections, which is the third level of Three Levels of the REST Maturity Model
Why Hypermedia?
As you can read in the prologue of Designing Hypermedia APIs book:
Hypermedia APIs embrace the principles that make the web great: flexibility, standardization, and loose coupling to any given service. They take into account the principles of systems design enumerated by Roy Fielding in his thesis, but with a little less sytems theory jargon.
Hypermedia designs scale better, are more easily changed and promote decoupling and encapsulation, with all the benefits those things bring. On the downside, it is not necessarily the most latency-tolerant design, and caches can get stale if you're not careful. It may not be as efficient on an individual request level as other designs.
Which Hypermedia specification should I use?
Hypermedia is being defined these days. Only the best APIs implement Hypermedia. Currently there is no de facto standard, so you must choose between the differents specifications.
PhpHal currenly implements or is planned to implement these specifications:
- HAL: This is the most common and active. It has a JSON and a XML version.
- Siren: Currently being defined. It implements some useful things like actions, classes, etc.
- Collection+JSON: This is fully designed to be a CRUD oriented API.
Requirements
- PHP 5.4.x
Installation
The recommended way to install PhpHal is through composer. You can see the package information on Packagist.
Examples
Writer
Basic Resource with Link as
Resource with embedded resources as
Resource with linked resource as
Reader
Basic Resource with Link as
Tests
Tests are in the tests
folder.
To run them, you need PHPUnit.
Example:
$ phpunit --configuration phpunit.xml.dist
License
MIT, see LICENSE