|
|
@@ -19,7 +19,7 @@ class Minz_Request {
|
|
|
private static string $default_controller_name = 'index';
|
|
|
private static string $default_action_name = 'index';
|
|
|
|
|
|
- /** @var array{'c'?:string,'a'?:string,'params'?:array<string,mixed>} */
|
|
|
+ /** @var array{c?:string,a?:string,params?:array<string,mixed>} */
|
|
|
private static array $originalRequest = [];
|
|
|
|
|
|
/**
|
|
|
@@ -35,6 +35,7 @@ class Minz_Request {
|
|
|
public static function params(): array {
|
|
|
return self::$params;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* Read the URL parameter
|
|
|
* @param string $key Key name
|
|
|
@@ -46,10 +47,8 @@ class Minz_Request {
|
|
|
public static function param(string $key, $default = false, bool $specialchars = false) {
|
|
|
if (isset(self::$params[$key])) {
|
|
|
$p = self::$params[$key];
|
|
|
- if (is_object($p) || $specialchars) {
|
|
|
- return $p;
|
|
|
- } elseif (is_string($p) || is_array($p)) {
|
|
|
- return Minz_Helper::htmlspecialchars_utf8($p);
|
|
|
+ if (is_string($p) || is_array($p)) {
|
|
|
+ return $specialchars ? $p : Minz_Helper::htmlspecialchars_utf8($p);
|
|
|
} else {
|
|
|
return $p;
|
|
|
}
|
|
|
@@ -58,12 +57,15 @@ class Minz_Request {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /** @return array<string|int,string|array<string,string|int>> */
|
|
|
+ public static function hasParam(string $key): bool {
|
|
|
+ return isset(self::$params[$key]);
|
|
|
+ }
|
|
|
+
|
|
|
+ /** @return array<string|int,string|array<string,string|int|bool>> */
|
|
|
public static function paramArray(string $key, bool $specialchars = false): array {
|
|
|
if (empty(self::$params[$key]) || !is_array(self::$params[$key])) {
|
|
|
return [];
|
|
|
}
|
|
|
-
|
|
|
return $specialchars ? Minz_Helper::htmlspecialchars_utf8(self::$params[$key]) : self::$params[$key];
|
|
|
}
|
|
|
|
|
|
@@ -131,7 +133,7 @@ class Minz_Request {
|
|
|
public static function defaultActionName(): string {
|
|
|
return self::$default_action_name;
|
|
|
}
|
|
|
- /** @return array{'c':string,'a':string,'params':array<string,mixed>} */
|
|
|
+ /** @return array{c:string,a:string,params:array<string,mixed>} */
|
|
|
public static function currentRequest(): array {
|
|
|
return [
|
|
|
'c' => self::$controller_name,
|
|
|
@@ -140,14 +142,14 @@ class Minz_Request {
|
|
|
];
|
|
|
}
|
|
|
|
|
|
- /** @return array{'c'?:string,'a'?:string,'params'?:array<string,mixed>} */
|
|
|
+ /** @return array{c?:string,a?:string,params?:array<string,mixed>} */
|
|
|
public static function originalRequest() {
|
|
|
return self::$originalRequest;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @param array<string,mixed>|null $extraParams
|
|
|
- * @return array{'c':string,'a':string,'params':array<string,mixed>}
|
|
|
+ * @return array{c:string,a:string,params:array<string,mixed>}
|
|
|
*/
|
|
|
public static function modifiedCurrentRequest(?array $extraParams = null): array {
|
|
|
unset(self::$params['ajax']);
|
|
|
@@ -169,14 +171,13 @@ class Minz_Request {
|
|
|
self::$action_name = ctype_alnum($action_name) ? $action_name : '';
|
|
|
}
|
|
|
|
|
|
- /** @param array<string,string> $params */
|
|
|
+ /** @param array<string,mixed> $params */
|
|
|
public static function _params(array $params): void {
|
|
|
self::$params = $params;
|
|
|
}
|
|
|
|
|
|
- /** @param array|mixed $value */
|
|
|
- public static function _param(string $key, $value = false): void {
|
|
|
- if ($value === false) {
|
|
|
+ public static function _param(string $key, ?string $value = null): void {
|
|
|
+ if ($value === null) {
|
|
|
unset(self::$params[$key]);
|
|
|
} else {
|
|
|
self::$params[$key] = $value;
|
|
|
@@ -382,7 +383,7 @@ class Minz_Request {
|
|
|
|
|
|
/**
|
|
|
* Restart a request
|
|
|
- * @param array{'c'?:string,'a'?:string,'params'?:array<string,mixed>} $url an array presentation of the URL to route to
|
|
|
+ * @param array{c?:string,a?:string,params?:array<string,mixed>} $url an array presentation of the URL to route to
|
|
|
* @param bool $redirect If true, uses an HTTP redirection, and if false (default), performs an internal dispatcher redirection.
|
|
|
* @throws Minz_ConfigurationException
|
|
|
*/
|
|
|
@@ -400,10 +401,8 @@ class Minz_Request {
|
|
|
} else {
|
|
|
self::_controllerName($url['c']);
|
|
|
self::_actionName($url['a']);
|
|
|
- self::_params(array_merge(
|
|
|
- self::$params,
|
|
|
- $url['params']
|
|
|
- ));
|
|
|
+ $merge = array_merge(self::$params, $url['params']);
|
|
|
+ self::_params($merge);
|
|
|
Minz_Dispatcher::reset();
|
|
|
}
|
|
|
}
|
|
|
@@ -411,7 +410,7 @@ class Minz_Request {
|
|
|
/**
|
|
|
* Wrappers good notifications + redirection
|
|
|
* @param string $msg notification content
|
|
|
- * @param array{'c'?:string,'a'?:string,'params'?:array<string,mixed>} $url url array to where we should be forwarded
|
|
|
+ * @param array{c?:string,a?:string,params?:array<string,mixed>} $url url array to where we should be forwarded
|
|
|
*/
|
|
|
public static function good(string $msg, array $url = []): void {
|
|
|
Minz_Request::setGoodNotification($msg);
|
|
|
@@ -421,7 +420,7 @@ class Minz_Request {
|
|
|
/**
|
|
|
* Wrappers bad notifications + redirection
|
|
|
* @param string $msg notification content
|
|
|
- * @param array{'c'?:string,'a'?:string,'params'?:array<string,mixed>} $url url array to where we should be forwarded
|
|
|
+ * @param array{c?:string,a?:string,params?:array<string,mixed>} $url url array to where we should be forwarded
|
|
|
*/
|
|
|
public static function bad(string $msg, array $url = []): void {
|
|
|
Minz_Request::setBadNotification($msg);
|