diff --git a/mirzaev/minimal/system/core.php b/mirzaev/minimal/system/core.php index 336ba98..c2873ca 100755 --- a/mirzaev/minimal/system/core.php +++ b/mirzaev/minimal/system/core.php @@ -6,23 +6,23 @@ namespace mirzaev\minimal; // Files of the project use mirzaev\minimal\router, - mirzaev\minimal\route, - mirzaev\minimal\controller, - mirzaev\minimal\model, - mirzaev\minimal\http\request, - mirzaev\minimal\http\response, - mirzaev\minimal\http\enumerations\status; +mirzaev\minimal\route, +mirzaev\minimal\controller, +mirzaev\minimal\model, +mirzaev\minimal\http\request, +mirzaev\minimal\http\response, +mirzaev\minimal\http\enumerations\status; // Built-in libraries use Closure as closure, - Exception as exception, - RuntimeException as exception_runtime, - BadMethodCallException as exception_method, - DomainException as exception_domain, - InvalidArgumentException as exception_argument, - UnexpectedValueException as exception_value, - LogicException as exception_logic, - ReflectionClass as reflection; +Exception as exception, +RuntimeException as exception_runtime, +BadMethodCallException as exception_method, +DomainException as exception_domain, +InvalidArgumentException as exception_argument, +UnexpectedValueException as exception_value, +LogicException as exception_logic, +ReflectionClass as reflection; /** * Core @@ -103,7 +103,9 @@ final class core /** * Destructor */ - public function __destruct() {} + public function __destruct() + { + } /** * Start @@ -128,7 +130,7 @@ final class core $_SERVER["REQUEST_METHOD"] = $options['method'] ?? 'GET'; // Writing URI into the environment constant - $_SERVER['REQUEST_URI'] = $options['uri'] ?? '/'; + $_SERVER['REQUEST_URI'] = $options['uri'] ?? '/'; // Writing verstion of HTTP protocol into the environment constant $_SERVER['SERVER_PROTOCOL'] = $options['protocol'] ?? 'CLI'; @@ -157,7 +159,7 @@ final class core // Initialized the route if (!empty($parameters)) { - // Recaived parameters + // Received parameters // Merging parameters with the route parameters $route->parameters = $parameters + $route->parameters; @@ -251,12 +253,12 @@ final class core try { // Preparing the route function - $action = function() use ($request, $route): string { + $action = function () use ($request, $route): string { // Writing the request options from the route options $request->options = $route->options; // Processing the method of the controller and exit (success) - $action = fn(): string => (string) $route->controller->{$route->method}(...($route->parameters + $request->parameters)); + $action = fn(): string => (string) $route->controller->{$route->method}(...($route->parameters + $route->variables + $request->parameters)); foreach ($route->middlewares as $middleware) { // Iterating over the route middlewares diff --git a/mirzaev/minimal/system/route.php b/mirzaev/minimal/system/route.php index b0a492c..f8b51cf 100755 --- a/mirzaev/minimal/system/route.php +++ b/mirzaev/minimal/system/route.php @@ -72,7 +72,7 @@ final class route // Read &get => $this->parameters; } - + /** * Options * @@ -113,6 +113,18 @@ final class route // Read get => $this->options ?? []; } + + /** + * Parameters + * + * @see https://wiki.php.net/rfc/property-hooks (find a table about backed and virtual hooks) + * + * @var array $parameters Arguments for the $this->method (will be concatenated together with generated request parameters) + */ + public array $variables = [] { + // Read + &get => $this->variables; + } /** * Constructor