for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types = 1);
namespace Venta\Routing;
use Psr\Http\Message\ServerRequestInterface;
use Venta\Contracts\Routing\ImmutableRouteCollection as RouteCollectionContract;
/**
* Class RequestRouteCollection
*
* @package Venta\Routing
*/
final class RequestRouteCollection implements RouteCollectionContract
{
* @var ServerRequestInterface
private $request;
* @var RouteCollectionContract
private $routes;
* RequestRouteCollection constructor.
* @param ServerRequestInterface $request
* @param RouteCollectionContract $routes
public function __construct(ServerRequestInterface $request, RouteCollectionContract $routes)
$this->request = $request;
$this->routes = $routes;
}
* @inheritDoc
public function findByName(string $routeName)
return $this->routes->findByName($routeName);
public function all(): array
$routes = [];
foreach ($this->routes->all() as $route) {
if ((!$route->host() || $route->host() === $this->request->getUri()->getHost())
&& (!$route->scheme() || $route->scheme() === $this->request->getUri()->getScheme())
) {
$routes[] = $route;
return $routes;