<?php namespace App\Http\Headers; // // Details about Link headers and their use in WebSub is here: // // https://www.w3.org/TR/websub/#discovery // class Link { private $relations = []; public function hub(string $uri) { $this->relate('hub', $uri); } public function next(string $uri) { $this->relate('next', $uri); } public function relate(string $relationType, string $uri) { array_push( $this->relations, [ 'uri' => $uri, 'rel' => $relationType, ] ); } public function self(string $uri) { $this->relate('self', $uri); } public function __toString() : string { return join( ', ', array_map( function ($relation) { $uri = $relation['uri']; $rel = $relation['rel']; return "<$uri>; rel=\"$rel\""; }, $this->relations ) ); } }