Compare commits

..

2 Commits

Author SHA1 Message Date
Simon 7ba29457ff Pass unit tests 2023-08-09 04:55:26 +02:00
Simon 30db793e85 Optimized parameter handling 2023-08-09 00:18:30 +02:00
4 changed files with 32 additions and 27 deletions
+21 -9
View File
@@ -1742,7 +1742,6 @@ 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
@@ -1763,14 +1762,19 @@ class MyCustomClassLoader implements IClassLoader
*
* @param string $class
* @return object
* @throws ClassNotFoundHttpException
* @throws NotFoundHttpException
*/
public function loadClass(string $class)
{
if ($this->container->has($class) === false) {
throw new ClassNotFoundHttpException($class, null, sprintf('Class "%s" does not exist', $class), 404, null);
if (class_exists($class) === false) {
throw new NotFoundHttpException(sprintf('Class "%s" does not exist', $class), 404);
}
return $this->container->get($class);
try {
return $this->container->get($class);
} catch (\Exception $e) {
throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious());
}
}
/**
@@ -1778,11 +1782,15 @@ class MyCustomClassLoader implements IClassLoader
* @param object $class
* @param string $method
* @param array $parameters
* @return string
* @return object
*/
public function loadClassMethod($class, string $method, array $parameters)
{
return (string)$this->container->call([$class, $method], $parameters);
try {
return $this->container->call([$class, $method], $parameters);
} catch (\Exception $e) {
throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious());
}
}
/**
@@ -1790,11 +1798,15 @@ class MyCustomClassLoader implements IClassLoader
*
* @param Callable $closure
* @param array $parameters
* @return string
* @return mixed
*/
public function loadClosure(callable $closure, array $parameters)
{
return (string)$this->container->call($closure, $parameters);
try {
return $this->container->call($closure, $parameters);
} catch (\Exception $e) {
throw new NotFoundHttpException($e->getMessage(), (int)$e->getCode(), $e->getPrevious());
}
}
}
```
+10 -14
View File
@@ -82,10 +82,6 @@ class InputHandler
if ($post !== false) {
$this->originalPost += $post;
}
} else {
$post = [];
parse_str($contents, $post);
$this->originalPost += $post;
}
}
@@ -112,7 +108,7 @@ class InputHandler
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;
}
@@ -165,12 +161,12 @@ class InputHandler
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) {
@@ -235,7 +231,7 @@ class InputHandler
{
$element = null;
if (count($methods) > 0) {
if(count($methods) > 0) {
$methods = is_array(...$methods) ? array_values(...$methods) : $methods;
}
@@ -307,9 +303,9 @@ class InputHandler
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;
}
}
+1 -3
View File
@@ -32,8 +32,6 @@ class Response
*
* @param string $url
* @param ?int $httpCode
*
* @return never
*/
public function redirect(string $url, ?int $httpCode = null): void
{
@@ -129,4 +127,4 @@ class Response
return $this;
}
}
}
-1
View File
@@ -562,7 +562,6 @@ class Router
if ($this->request->getRewriteRoute() !== null) {
$this->processedRoutes[] = $this->request->getRewriteRoute();
$this->request->setHasPendingRewrite(false);
}
return $this->routeRequest();