Viewing file: Link.php (1.97 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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; } }
|