diff --git a/README.md b/README.md index 3a50b96..3dbbb21 100644 --- a/README.md +++ b/README.md @@ -1742,6 +1742,7 @@ SimpleRouter::setCustomClassLoader(new MyCustomClassLoader()); php-di support was discontinued by version 4.3, however you can easily add it again by creating your own class-loader like the example below: ```php +use Pecee\SimpleRouter\ClassLoader\IClassLoader; use Pecee\SimpleRouter\Exceptions\ClassNotFoundHttpException; class MyCustomClassLoader implements IClassLoader @@ -1762,19 +1763,14 @@ class MyCustomClassLoader implements IClassLoader * * @param string $class * @return object - * @throws NotFoundHttpException + * @throws ClassNotFoundHttpException */ public function loadClass(string $class) { - if (class_exists($class) === false) { - throw new NotFoundHttpException(sprintf('Class "%s" does not exist', $class), 404); + if ($this->container->has($class) === false) { + throw new ClassNotFoundHttpException($class, null, sprintf('Class "%s" does not exist', $class), 404, null); } - - try { - return $this->container->get($class); - } catch (\Exception $e) { - throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious()); - } + return $this->container->get($class); } /** @@ -1782,15 +1778,11 @@ class MyCustomClassLoader implements IClassLoader * @param object $class * @param string $method * @param array $parameters - * @return object + * @return string */ public function loadClassMethod($class, string $method, array $parameters) { - try { - return $this->container->call([$class, $method], $parameters); - } catch (\Exception $e) { - throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious()); - } + return (string)$this->container->call([$class, $method], $parameters); } /** @@ -1798,15 +1790,11 @@ class MyCustomClassLoader implements IClassLoader * * @param Callable $closure * @param array $parameters - * @return mixed + * @return string */ public function loadClosure(callable $closure, array $parameters) { - try { - return $this->container->call($closure, $parameters); - } catch (\Exception $e) { - throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious()); - } + return (string)$this->container->call($closure, $parameters); } } ``` diff --git a/src/Pecee/Http/Input/InputHandler.php b/src/Pecee/Http/Input/InputHandler.php index 943ea04..3d90b3c 100644 --- a/src/Pecee/Http/Input/InputHandler.php +++ b/src/Pecee/Http/Input/InputHandler.php @@ -82,6 +82,8 @@ public function parseInputs(): void if ($post !== false) { $this->originalPost += $post; } + } else { + parse_str($contents, $this->originalPost); } } @@ -108,7 +110,7 @@ public function parseFiles(array $files, ?string $parentKey = null): array foreach ($files as $key => $value) { // Parse multi dept file array - if(isset($value['name']) === false && is_array($value) === true) { + if (isset($value['name']) === false && is_array($value) === true) { $list[$key] = $this->parseFiles($value, $key); continue; } @@ -161,12 +163,12 @@ protected function rearrangeFile(array $values, array &$index, ?array $original) try { $file = InputFile::createFromArray([ - 'index' => ($key === '' && $originalIndex !== '') ? $originalIndex : $key, - 'name' => $original['name'][$key], - 'error' => $original['error'][$key], + 'index' => ($key === '' && $originalIndex !== '') ? $originalIndex : $key, + 'name' => $original['name'][$key], + 'error' => $original['error'][$key], 'tmp_name' => $original['tmp_name'][$key], - 'type' => $original['type'][$key], - 'size' => $original['size'][$key], + 'type' => $original['type'][$key], + 'size' => $original['size'][$key], ]); if (isset($output[$key]) === true) { @@ -231,7 +233,7 @@ public function find(string $index, ...$methods) { $element = null; - if(count($methods) > 0) { + if (count($methods) > 0) { $methods = is_array(...$methods) ? array_values(...$methods) : $methods; } @@ -303,9 +305,9 @@ public function value(string $index, $defaultValue = null, ...$methods) public function exists($index, ...$methods): bool { // Check array - if(is_array($index) === true) { - foreach($index as $key) { - if($this->value($key, null, ...$methods) === null) { + if (is_array($index) === true) { + foreach ($index as $key) { + if ($this->value($key, null, ...$methods) === null) { return false; } } diff --git a/src/Pecee/Http/Response.php b/src/Pecee/Http/Response.php index 0c4b910..5e6ca47 100644 --- a/src/Pecee/Http/Response.php +++ b/src/Pecee/Http/Response.php @@ -32,6 +32,8 @@ public function httpCode(int $code): self * * @param string $url * @param ?int $httpCode + * + * @return never */ public function redirect(string $url, ?int $httpCode = null): void { @@ -127,4 +129,4 @@ public function headers(array $headers): self return $this; } -} \ No newline at end of file +} diff --git a/src/Pecee/SimpleRouter/Router.php b/src/Pecee/SimpleRouter/Router.php index fd2affa..8c88793 100644 --- a/src/Pecee/SimpleRouter/Router.php +++ b/src/Pecee/SimpleRouter/Router.php @@ -562,6 +562,7 @@ protected function handleException(Exception $e): ?string if ($this->request->getRewriteRoute() !== null) { $this->processedRoutes[] = $this->request->getRewriteRoute(); + $this->request->setHasPendingRewrite(false); } return $this->routeRequest();