Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

libgraviton/link-header-rel-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

graviton/link-header-rel-parser

Build Status Latest Stable Version Total Downloads License

This is a small standalone PHP library that helps with parsing and creating Link header contents with rel="" attributes as it is used in the context of RESTful web services.

It is a tolerant parser, silently accepting invalid input. You can use the API functions to check if a given rel exists.

Installation

The preferred way to install library is through composer.

Either run

composer require graviton/link-header-rel-parser

or add

"graviton/link-header-rel-parser": "*",

to the require section of your composer.json.

Examples

Parsing headers

Parsing an existing header is easy, just pass the plain header contents to the static function:

$header = '<http://localhost/service/self>; rel="self", '<http://localhost/service/next>; rel="next"';
$linkHeader = LinkHeader::fromString($header);

$selfUrl = $linkHeader->getRel('self')->getUri(); // will output 'http://localhost/service/self'

If you are using Symfony, just fetch the Link header from the Request or Response object and pass it to the library.

Creating headers

You can create header contents programmatically:

$header = new LinkHeader();
$header->add(new LinkHeaderItem('http://localhost?limit(10,10)', 'self'));
$header->add(new LinkHeaderItem('http://localhost?limit(10,30)', 'next'));
$header->add(new LinkHeaderItem('http://localhost?limit(10,0)', 'prev'));

echo (string) $header;

Will produce

<http://localhost?limit(10,10)>; rel="self", <http://localhost?limit(10,30)>; rel="next", <http://localhost?limit(10,0)>; rel="prev"

Manipulating existing

Combining both methods above, you can also parse existing headers, manipulate them and render them.

$header = '<http://localhost/service/self>; rel="self", '<http://localhost/service/next>; rel="next"';
$linkHeader = LinkHeader::fromString($header);

$linkHeader->add(new LinkHeaderItem('http://localhost?limit(10,10)', 'prev'));
$linkHeader->removeRel('next');
$header->getRel('self')->setUri('http://newhost');

echo (string) $header;

Will produce

<http://newhost>; rel="self", <http://localhost?limit(10,10)>; rel="prev"

About

A small library that parses RESTful Link headers with rel attributes (relations)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.