30 lines
716 B
PHP
30 lines
716 B
PHP
<?php
|
|
|
|
namespace KTXC\Routing;
|
|
|
|
/**
|
|
* Value object representing a resolved route.
|
|
*/
|
|
class Route
|
|
{
|
|
/** @var array<string, string> Route parameters extracted from path */
|
|
public array $params = [];
|
|
|
|
public function __construct(
|
|
public readonly string $name,
|
|
public readonly string $method,
|
|
public readonly string $path,
|
|
public readonly bool $authenticated,
|
|
public readonly string $className,
|
|
public readonly string $classMethodName,
|
|
public readonly array $classMethodParameters = [],
|
|
) {}
|
|
|
|
public function withParams(array $params): self
|
|
{
|
|
$clone = clone $this;
|
|
$clone->params = $params;
|
|
return $clone;
|
|
}
|
|
}
|