Client route
ClientRoute
is a singleton service that can help you with navigation, URL information, and query parameters.
class ClientRoute
{
 public function navigateBack(): void;
 public function navigate(string $url): void;
 public function getUrl(): ?string;
 public function getUrlPath(): ?string;
 public function getQueryParams(): array;
}
navigateBack
- navigates to a previous page.
navigate
- navigates to a specific URL.
getUrl
- returns the current URL.
getUrlPath
- return current URL path without query parameters.
getQueryParams
- returns query parameters as an array.
Useful for middleware guard or query filters.
<?php

namespace Components\Services\Middleware;

use Viewi\Components\Middleware\IMIddleware;
use Viewi\Components\Middleware\IMIddlewareContext;
use Viewi\Components\Routing\ClientRoute;
use Viewi\DI\Singleton;

#[Singleton]
class MemberGuardNoAccess implements IMIddleware
{
 public function __construct(private ClientRoute $route)
 {
 }

 public function run(IMIddlewareContext $c)
 {
 $c->next(false); // user does not have access
 $this->route->navigate('/login'); // redirect to the login page
 }
}