primo commit
This commit is contained in:
		
							
								
								
									
										71
									
								
								libraries/vendor/symfony/web-link/GenericLinkProvider.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								libraries/vendor/symfony/web-link/GenericLinkProvider.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,71 @@ | ||||
| <?php | ||||
|  | ||||
| /* | ||||
|  * This file is part of the Symfony package. | ||||
|  * | ||||
|  * (c) Fabien Potencier <fabien@symfony.com> | ||||
|  * | ||||
|  * For the full copyright and license information, please view the LICENSE | ||||
|  * file that was distributed with this source code. | ||||
|  */ | ||||
|  | ||||
| namespace Symfony\Component\WebLink; | ||||
|  | ||||
| use Psr\Link\EvolvableLinkProviderInterface; | ||||
| use Psr\Link\LinkInterface; | ||||
|  | ||||
| class GenericLinkProvider implements EvolvableLinkProviderInterface | ||||
| { | ||||
|     /** | ||||
|      * @var LinkInterface[] | ||||
|      */ | ||||
|     private array $links = []; | ||||
|  | ||||
|     /** | ||||
|      * @param LinkInterface[] $links | ||||
|      */ | ||||
|     public function __construct(array $links = []) | ||||
|     { | ||||
|         $that = $this; | ||||
|  | ||||
|         foreach ($links as $link) { | ||||
|             $that = $that->withLink($link); | ||||
|         } | ||||
|  | ||||
|         $this->links = $that->links; | ||||
|     } | ||||
|  | ||||
|     public function getLinks(): array | ||||
|     { | ||||
|         return array_values($this->links); | ||||
|     } | ||||
|  | ||||
|     public function getLinksByRel(string $rel): array | ||||
|     { | ||||
|         $links = []; | ||||
|  | ||||
|         foreach ($this->links as $link) { | ||||
|             if (\in_array($rel, $link->getRels())) { | ||||
|                 $links[] = $link; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $links; | ||||
|     } | ||||
|  | ||||
|     public function withLink(LinkInterface $link): static | ||||
|     { | ||||
|         $that = clone $this; | ||||
|         $that->links[spl_object_id($link)] = $link; | ||||
|  | ||||
|         return $that; | ||||
|     } | ||||
|  | ||||
|     public function withoutLink(LinkInterface $link): static | ||||
|     { | ||||
|         $that = clone $this; | ||||
|         unset($that->links[spl_object_id($link)]); | ||||
|  | ||||
|         return $that; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user