Fixed issue with SimpleRouter::error not firing within group (issue: #551).

- Fixed variable incorrect variable reference in `InputItem` class.
- Added new `Router::addExceptionHandler` method.
- Added parameter types in `Url` class.
- Fixed phpdoc parameter-type for `Request::getHeader`.
This commit is contained in:
Simon Sessingø
2021-05-19 22:00:42 +02:00
parent 0c329e4c5b
commit 4c5f825c97
5 changed files with 12 additions and 8 deletions

View File

@@ -97,7 +97,7 @@ class InputItem implements ArrayAccess, IInputItem, IteratorAggregate
public function offsetUnset($offset): void
{
unset($this->data[$offset]);
unset($this->value[$offset]);
}
public function __toString(): string

View File

@@ -264,12 +264,12 @@ class Request
* Get header value by name
*
* @param string $name Name of the header.
* @param string|null $defaultValue Value to be returned if header is not found.
* @param string|mixed|null $defaultValue Value to be returned if header is not found.
* @param bool $tryParse When enabled the method will try to find the header from both from client (http) and server-side variants, if the header is not found.
*
* @return string|null
*/
public function getHeader(string $name, $defaultValue = null, $tryParse = true): ?string
public function getHeader(string $name, $defaultValue = null, bool $tryParse = true): ?string
{
$name = strtolower($name);
$header = $this->headers[$name] ?? null;

View File

@@ -431,7 +431,7 @@ class Url implements JsonSerializable
* @param bool $includeParams
* @return string
*/
public function getRelativeUrl($includeParams = true): string
public function getRelativeUrl(bool $includeParams = true): string
{
$path = $this->path ?? '/';
@@ -451,7 +451,7 @@ class Url implements JsonSerializable
* @param bool $includeParams
* @return string
*/
public function getAbsoluteUrl($includeParams = true): string
public function getAbsoluteUrl(bool $includeParams = true): string
{
$scheme = $this->scheme !== null ? $this->scheme . '://' : '';
$host = $this->host ?? '';

View File

@@ -944,4 +944,10 @@ class Router
return $this;
}
public function addExceptionHandler(IExceptionHandler $handler): self
{
$this->exceptionHandlers[] = $handler;
return $this;
}
}

View File

@@ -427,9 +427,7 @@ class SimpleRouter
{
$callbackHandler = new CallbackExceptionHandler($callback);
static::router()->addRoute(
(new RouteGroup())->addExceptionHandler($callbackHandler)
);
static::router()->addExceptionHandler($callbackHandler);
return $callbackHandler;
}