diff options
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Http/Message/Header/Link.php')
-rw-r--r-- | vendor/guzzle/guzzle/src/Guzzle/Http/Message/Header/Link.php | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Header/Link.php b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Header/Link.php new file mode 100644 index 0000000..a9fb961 --- /dev/null +++ b/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Header/Link.php @@ -0,0 +1,93 @@ +<?php + +namespace Guzzle\Http\Message\Header; + +use Guzzle\Http\Message\Header; + +/** + * Provides helpful functionality for link headers + */ +class Link extends Header +{ + /** + * Add a link to the header + * + * @param string $url Link URL + * @param string $rel Link rel + * @param array $params Other link parameters + * + * @return self + */ + public function addLink($url, $rel, array $params = array()) + { + $values = array("<{$url}>", "rel=\"{$rel}\""); + + foreach ($params as $k => $v) { + $values[] = "{$k}=\"{$v}\""; + } + + return $this->add(implode('; ', $values)); + } + + /** + * Check if a specific link exists for a given rel attribute + * + * @param string $rel rel value + * + * @return bool + */ + public function hasLink($rel) + { + return $this->getLink($rel) !== null; + } + + /** + * Get a specific link for a given rel attribute + * + * @param string $rel Rel value + * + * @return array|null + */ + public function getLink($rel) + { + foreach ($this->getLinks() as $link) { + if (isset($link['rel']) && $link['rel'] == $rel) { + return $link; + } + } + + return null; + } + + /** + * Get an associative array of links + * + * For example: + * Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg", <http://.../back.jpeg>; rel=back; type="image/jpeg" + * + * <code> + * var_export($response->getLinks()); + * array( + * array( + * 'url' => 'http:/.../front.jpeg', + * 'rel' => 'back', + * 'type' => 'image/jpeg', + * ) + * ) + * </code> + * + * @return array + */ + public function getLinks() + { + $links = $this->parseParams(); + + foreach ($links as &$link) { + $key = key($link); + unset($link[$key]); + $link['url'] = trim($key, '<> '); + } + + return $links; + } +} |