From a3fd37fd8498287df9a3969923b7e37aee49c9d6 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 15 Jul 2018 21:22:25 +0200 Subject: [PATCH] Fix types --- DataStorage/DataStorageConnectionInterface.php | 9 +++++++++ DataStorage/Database/BuilderAbstract.php | 12 +++--------- Dispatcher/Dispatcher.php | 16 +++++++++++++--- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/DataStorage/DataStorageConnectionInterface.php b/DataStorage/DataStorageConnectionInterface.php index 3f79866a3..a69f3421e 100644 --- a/DataStorage/DataStorageConnectionInterface.php +++ b/DataStorage/DataStorageConnectionInterface.php @@ -25,6 +25,15 @@ namespace phpOMS\DataStorage; interface DataStorageConnectionInterface { + /** + * Get prefix. + * + * @return string + * + * @since 1.0.0 + */ + public function getPrefix() : string; + /** * Connect to datastorage. * diff --git a/DataStorage/Database/BuilderAbstract.php b/DataStorage/Database/BuilderAbstract.php index 8b0346692..e391224ab 100644 --- a/DataStorage/Database/BuilderAbstract.php +++ b/DataStorage/Database/BuilderAbstract.php @@ -14,7 +14,7 @@ declare(strict_types=1); namespace phpOMS\DataStorage\Database; -use phpOMS\DataStorage\Database\Connection\ConnectionAbstract; +use phpOMS\DataStorage\DataStorageConnectionInterface; use phpOMS\DataStorage\Database\Query\QueryType; /** @@ -38,7 +38,7 @@ abstract class BuilderAbstract /** * Database connection. * - * @var ConnectionAbstract + * @var DataStorageConnectionInterface * @since 1.0.0 */ protected $connection = null; @@ -68,13 +68,7 @@ abstract class BuilderAbstract public $raw = ''; /** - * Set prefix. - * - * @param string $prefix Prefix - * - * @return self - * - * @since 1.0.0 + * {@inheritdoc} */ public function prefix(string $prefix) : self { diff --git a/Dispatcher/Dispatcher.php b/Dispatcher/Dispatcher.php index b8ffed67c..04d5285b4 100644 --- a/Dispatcher/Dispatcher.php +++ b/Dispatcher/Dispatcher.php @@ -63,7 +63,7 @@ final class Dispatcher * Dispatch controller. * * @param string|array|\Closure $controller Controller string - * @param array|null ...$data Data + * @param array|null|mixed ...$data Data * * @return array * @@ -111,7 +111,12 @@ final class Dispatcher if (($c = count($dispatch)) === 3) { /* Handling static functions */ - $function = $dispatch[0] . '::' . $dispatch[2]; + $function = $dispatch[0] . '::' . $dispatch[2]; + + if (!\is_callable($function)) { + throw new \Exception(); + } + $views[$controller] = $function(...$data); } elseif ($c === 2) { $this->getController($dispatch[0]); @@ -135,9 +140,14 @@ final class Dispatcher */ private function dispatchArray(array $controller, array $data = null) : array { + $views = []; foreach ($controller as $controllerSingle) { - $views += $this->dispatch($controllerSingle, ...$data); + if ($data === null) { + $views += $this->dispatch($controllerSingle); + } else { + $views += $this->dispatch($controllerSingle, ...$data); + } } return $views;