Skip to content

Commit a843a00

Browse files
committed
Merge branch 'release/0.9.0'
2 parents 856f020 + 64bad13 commit a843a00

File tree

6 files changed

+49
-14
lines changed

6 files changed

+49
-14
lines changed

.version.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"strategy": "semver",
33
"major": 0,
4-
"minor": 8,
5-
"patch": 14,
4+
"minor": 9,
5+
"patch": 0,
66
"build": 0
77
}

src/Mvc/Application.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ protected function onRun() : void
250250
* @return mixed
251251
* @throws MissingMethod
252252
* @throws NotFound
253+
* @throws Exception
253254
*/
254255
public function executeController( array $parameters, string $requestName = '' ): mixed
255256
{
@@ -283,12 +284,9 @@ public function executeController( array $parameters, string $requestName = '' )
283284
}
284285
}
285286

287+
$request->setRouteParameters( $parameters );
286288

287-
288-
return $controller->$method(
289-
$parameters,
290-
$request
291-
);
289+
return $controller->$method( $request );
292290
}
293291

294292
/**

src/Mvc/Controllers/HttpCodes.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22

33
namespace Neuron\Mvc\Controllers;
44

5+
use Neuron\Mvc\Requests\Request;
56
use Neuron\Mvc\Responses\HttpResponseStatus;
67

78
class HttpCodes extends Base
89
{
9-
public function code404( array $parameters ) : string
10+
public function code404( Request $request ) : string
1011
{
1112
return $this->renderHtml(
1213
HttpResponseStatus::NOT_FOUND,
1314
array_merge(
14-
$parameters,
15+
$request->getRouteParameters(),
1516
[
1617
"title" => "Resource Not Found",
1718
]

src/Mvc/Requests/Request.php

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
*/
1818
class Request
1919
{
20-
private string $_name;
20+
private string $_name = '';
2121
private int $_requestMethod;
2222
private array $_headers = [];
23-
private array $_parameters;
23+
private array $_parameters = [];
24+
private array $_routeParameters = [];
2425
private array $_errors = [];
2526
private DefaultIpResolver $_ipResolver;
2627
private Get $_get;
@@ -40,6 +41,38 @@ public function __construct()
4041
$this->_session = new Session();
4142
}
4243

44+
/**
45+
* Set route parameters
46+
*
47+
* @param array $routeParameters
48+
* @return void
49+
*/
50+
public function setRouteParameters( array $routeParameters ): void
51+
{
52+
$this->_routeParameters = $routeParameters;
53+
}
54+
55+
/**
56+
* Get all route parameters
57+
*
58+
* @return array
59+
*/
60+
public function getRouteParameters(): array
61+
{
62+
return $this->_routeParameters;
63+
}
64+
65+
/**
66+
* Get a route parameter by key
67+
*
68+
* @param string $key
69+
* @return mixed
70+
*/
71+
public function getRouteParameter( string $key ): mixed
72+
{
73+
return $this->_routeParameters[ $key ] ?? null;
74+
}
75+
4376
/**
4477
* @return string
4578
*/

tests/Mvc/TestController.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
class TestController extends Base
1515
{
16-
public function test( array $Parameters, ?Request $Request )
16+
public function test( Request $Request )
1717
{
1818
global $ControllerState;
1919

@@ -23,7 +23,7 @@ public function test( array $Parameters, ?Request $Request )
2323
$ControllerState = true;
2424
}
2525

26-
public function partial( array $Parameters, ?Request $Request ) : string
26+
public function partial( Request $Request ) : string
2727
{
2828
return $this->renderHtml(
2929
HttpResponseStatus::OK,
@@ -34,7 +34,7 @@ public function partial( array $Parameters, ?Request $Request ) : string
3434
);
3535
}
3636

37-
public function no_request( array $Parameters, ?Request $Request )
37+
public function no_request( Request $Request )
3838
{
3939
global $ControllerState;
4040
$ControllerState = true;

versionlog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## 0.9.0 2025-11-14
2+
* Controller methods can now only receive request objects. Route parameters must be accessed via the request object.
3+
14
## 0.8.14 2025-11-13
25
* Dispatched controller methods now always receive request objects, even if empty.
36

0 commit comments

Comments
 (0)