for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/*
* This file is part of the Silverback API Components Bundle Project
*
* (c) Daniel West <[email protected]>
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Silverback\ApiComponentsBundle\Helper\Collection;
use Silverback\ApiComponentsBundle\Exception\InvalidArgumentException;
use Symfony\Component\Routing\Exception\ExceptionInterface as RoutingExceptionInterface;
use Symfony\Component\Routing\RouterInterface;
/**
* @author Daniel West <[email protected]>
final class ApiResourceRouteFinder
{
private RouterInterface $router;
public function __construct(RouterInterface $router)
$this->router = $router;
}
public function findByIri(string $iri): array
try {
$parameters = $this->router->match($iri);
} catch (RoutingExceptionInterface $e) {
throw new InvalidArgumentException(sprintf('No route matches "%s".', $iri), $e->getCode(), $e);
if (!isset($parameters['_api_resource_class'])) {
throw new InvalidArgumentException(sprintf('No resource associated to "%s".', $iri));
return $parameters;