Skip to content

Commit 88bd85d

Browse files
authored
refactor(router): convert route attributes to plain objects (#822)
1 parent be20015 commit 88bd85d

File tree

17 files changed

+48
-131
lines changed

17 files changed

+48
-131
lines changed

.php-cs-fixer.dist.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
])
1010
->name('*.php')
1111
->notName('*.cache.php')
12+
->notPath('Tempest/Router/src/Route.php') // phpcs doesn't yet support property hooks in interfaces
1213
->ignoreDotFiles(true)
1314
->ignoreVCS(true);
1415

src/Tempest/Router/src/Connect.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Connect implements Route
11+
final readonly class Connect implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::CONNECT;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/Delete.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Delete implements Route
11+
final readonly class Delete implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::DELETE;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/GenericRouter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public function toUri(array|string $action, ...$params): string
119119
/** @var Route|null $routeAttribute */
120120
$routeAttribute = $controllerMethod->getAttribute(Route::class);
121121

122-
$uri = $routeAttribute->uri();
122+
$uri = $routeAttribute->uri;
123123
} catch (ReflectionException) {
124124
if (is_array($action)) {
125125
throw new InvalidRouteException($action[0], $action[1]);

src/Tempest/Router/src/Get.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Get implements Route
11+
final readonly class Get implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::GET;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/Head.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Head implements Route
11+
final readonly class Head implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::HEAD;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/IsRoute.php

Lines changed: 0 additions & 36 deletions
This file was deleted.

src/Tempest/Router/src/Options.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Options implements Route
11+
final readonly class Options implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::OPTIONS;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/Patch.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Patch implements Route
11+
final readonly class Patch implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::PATCH;
24-
$this->middleware = $middleware;
2523
}
2624
}

src/Tempest/Router/src/Post.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,17 @@
88
use Tempest\Http\Method;
99

1010
#[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_METHOD)]
11-
final class Post implements Route
11+
final readonly class Post implements Route
1212
{
13-
use IsRoute;
13+
public Method $method;
1414

1515
/**
1616
* @param class-string<HttpMiddleware>[] $middleware
1717
*/
1818
public function __construct(
19-
string $uri,
20-
array $middleware = [],
19+
public string $uri,
20+
public array $middleware = [],
2121
) {
22-
$this->uri = $uri;
2322
$this->method = Method::POST;
24-
$this->middleware = $middleware;
2523
}
2624
}

0 commit comments

Comments
 (0)