Documentation

LinkHeaderParser
in package

LinkHeaderParser Class

Utility class for parsing RFC 5988 Link headers from Canvas API responses. Canvas API uses Link headers to provide pagination information in the format:

Link: https://canvas.example.com/api/v1/courses?page=1&per_page=50; rel="current", https://canvas.example.com/api/v1/courses?page=2&per_page=50; rel="next", https://canvas.example.com/api/v1/courses?page=1&per_page=50; rel="first", https://canvas.example.com/api/v1/courses?page=10&per_page=50; rel="last"

Usage:

$parser = new LinkHeaderParser();
$links = $parser->parse($response->getHeader('Link')[0]);
$nextUrl = $links['next'] ?? null;

Table of Contents

Methods

extractPageNumber()  : int|null
Extract page number from a paginated URL
extractPerPage()  : int|null
Extract per_page parameter from a paginated URL
extractRelation()  : string|null
Extract specific relation URL from Link header
getRelations()  : array<string|int, string>
Get all available relations from Link header
hasRelation()  : bool
Check if Link header contains a specific relation
parse()  : array<string|int, string>
Parse Link header string into associative array

Methods

extractPageNumber()

Extract page number from a paginated URL

public extractPageNumber(string $url) : int|null
Parameters
$url : string

The paginated URL

Return values
int|null

The page number or null if not found

extractPerPage()

Extract per_page parameter from a paginated URL

public extractPerPage(string $url) : int|null
Parameters
$url : string

The paginated URL

Return values
int|null

The per_page value or null if not found

extractRelation()

Extract specific relation URL from Link header

public extractRelation(string $linkHeader, string $relation) : string|null
Parameters
$linkHeader : string

The Link header string

$relation : string

The relation to extract (next, prev, first, last, current)

Return values
string|null

The URL for the relation or null if not found

getRelations()

Get all available relations from Link header

public getRelations(string $linkHeader) : array<string|int, string>
Parameters
$linkHeader : string

The Link header string

Return values
array<string|int, string>

Array of relation names

hasRelation()

Check if Link header contains a specific relation

public hasRelation(string $linkHeader, string $relation) : bool
Parameters
$linkHeader : string

The Link header string

$relation : string

The relation to check for

Return values
bool

True if relation exists, false otherwise

parse()

Parse Link header string into associative array

public parse(string $linkHeader) : array<string|int, string>
Parameters
$linkHeader : string

The Link header string from HTTP response

Return values
array<string|int, string>

Associative array with rel values as keys and URLs as values


        
On this page

Search results