45 lines
832 B
PHP
45 lines
832 B
PHP
<?php
|
|
|
|
|
|
namespace Fig\Link;
|
|
|
|
use Psr\Link\LinkProviderInterface;
|
|
use Psr\Link\LinkInterface;
|
|
|
|
/**
|
|
* Class LinkProviderTrait
|
|
*
|
|
* @implements LinkProviderInterface
|
|
*/
|
|
trait LinkProviderTrait
|
|
{
|
|
/**
|
|
* An array of the links in this provider.
|
|
*
|
|
* The keys of the array MUST be the spl_object_hash() of the object being stored.
|
|
* That helps to ensure uniqueness.
|
|
*
|
|
* @var LinkInterface[]
|
|
*/
|
|
private $links = [];
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getLinks()
|
|
{
|
|
return $this->links;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getLinksByRel($rel)
|
|
{
|
|
$filter = function (LinkInterface $link) use ($rel) {
|
|
return in_array($rel, $link->getRels());
|
|
};
|
|
return array_filter($this->links, $filter);
|
|
}
|
|
}
|