diff --git a/README.md b/README.md index e5f4f93..82adb72 100644 --- a/README.md +++ b/README.md @@ -484,13 +484,13 @@ SimpleRouter::get('/user/{name}', function ($name) { // ... do stuff -})->where('name', '[A-Za-z]+'); +})->where([ 'name' => '[A-Za-z]+' ]); SimpleRouter::get('/user/{id}', function ($id) { // ... do stuff -})->where('id', '[0-9]+'); +})->where([ 'id' => '[0-9]+' ]); SimpleRouter::get('/user/{id}/{name}', function ($id, $name) { diff --git a/src/Pecee/Http/Input/InputHandler.php b/src/Pecee/Http/Input/InputHandler.php index b48fff2..ea6c6e8 100644 --- a/src/Pecee/Http/Input/InputHandler.php +++ b/src/Pecee/Http/Input/InputHandler.php @@ -303,13 +303,22 @@ class InputHandler // Append any PHP-input json if (strpos(trim($contents), '{') === 0) { $post = json_decode($contents, true); + if ($post !== false) { $output += $post; } } } - return (\count($filter) > 0) ? array_intersect_key($output, array_flip($filter)) : $output; + $output = (\count($filter) > 0) ? array_intersect_key($output, array_flip($filter)) : $output; + + foreach ($filter as $filterKey) { + if (array_key_exists($filterKey, $output) === false) { + $output[$filterKey] = null; + } + } + + return $output; } /** @@ -345,4 +354,4 @@ class InputHandler $this->file[$key] = $item; } -} \ No newline at end of file +} diff --git a/src/Pecee/Http/Security/CookieTokenProvider.php b/src/Pecee/Http/Security/CookieTokenProvider.php index cb6da8f..c078faa 100644 --- a/src/Pecee/Http/Security/CookieTokenProvider.php +++ b/src/Pecee/Http/Security/CookieTokenProvider.php @@ -63,7 +63,7 @@ class CookieTokenProvider implements ITokenProvider public function setToken(string $token): void { $this->token = $token; - setcookie(static::CSRF_KEY, $token, (time() + 60) * $this->cookieTimeoutMinutes, '/', ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); + setcookie(static::CSRF_KEY, $token, time() + (60 * $this->cookieTimeoutMinutes), '/', ini_get('session.cookie_domain'), ini_get('session.cookie_secure'), ini_get('session.cookie_httponly')); } /** diff --git a/src/Pecee/SimpleRouter/ClassLoader/ClassLoader.php b/src/Pecee/SimpleRouter/ClassLoader/ClassLoader.php index caea1a5..c73c7a8 100644 --- a/src/Pecee/SimpleRouter/ClassLoader/ClassLoader.php +++ b/src/Pecee/SimpleRouter/ClassLoader/ClassLoader.php @@ -53,7 +53,7 @@ class ClassLoader implements IClassLoader * @return mixed * @throws NotFoundHttpException */ - public function loadClosure(\Closure $closure, array $parameters) + public function loadClosure(Callable $closure, array $parameters) { if ($this->useDependencyInjection === true) { $container = $this->getContainer(); @@ -115,4 +115,4 @@ class ClassLoader implements IClassLoader return $this->useDependencyInjection; } -} \ No newline at end of file +} diff --git a/src/Pecee/SimpleRouter/ClassLoader/IClassLoader.php b/src/Pecee/SimpleRouter/ClassLoader/IClassLoader.php index d978ac1..f9c00a4 100644 --- a/src/Pecee/SimpleRouter/ClassLoader/IClassLoader.php +++ b/src/Pecee/SimpleRouter/ClassLoader/IClassLoader.php @@ -7,6 +7,6 @@ interface IClassLoader public function loadClass(string $class); - public function loadClosure(\Closure $closure, array $parameters); + public function loadClosure(Callable $closure, array $parameters); -} \ No newline at end of file +}