From b57bbcfdc733fcbc16d4dc519e702c1bb43d6141 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 11 Nov 2017 13:23:07 +0100 Subject: [PATCH] Reduce complexity --- .../Database/Query/Grammar/Grammar.php | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/DataStorage/Database/Query/Grammar/Grammar.php b/DataStorage/Database/Query/Grammar/Grammar.php index 7821c823d..35ae35039 100644 --- a/DataStorage/Database/Query/Grammar/Grammar.php +++ b/DataStorage/Database/Query/Grammar/Grammar.php @@ -114,27 +114,10 @@ class Grammar extends GrammarAbstract protected function compileComponents(BuilderAbstract $query) : array { $sql = []; + $components = $this->getComponents($query->getType()); - switch ($query->getType()) { - case QueryType::SELECT: - $components = $this->selectComponents; - break; - case QueryType::INSERT: - $components = $this->insertComponents; - break; - case QueryType::UPDATE: - $components = $this->updateComponents; - break; - case QueryType::DELETE: - $components = $this->deleteComponents; - break; - case QueryType::RANDOM: - $components = $this->selectComponents; - break; - case QueryType::RAW: - return [$query->raw]; - default: - throw new \InvalidArgumentException('Unknown query type.'); + if($query->getType() === QueryType::RAW) { + return $components; } /* Loop all possible query components and if they exist compile them. */ @@ -147,6 +130,26 @@ class Grammar extends GrammarAbstract return $sql; } + private function getComponents(int $type) : array + { + switch ($type) { + case QueryType::SELECT: + return $components = $this->selectComponents; + case QueryType::INSERT: + return $components = $this->insertComponents; + case QueryType::UPDATE: + return $components = $this->updateComponents; + case QueryType::DELETE: + return $components = $this->deleteComponents; + case QueryType::RANDOM: + return $components = $this->selectComponents; + case QueryType::RAW: + return [$query->raw]; + default: + throw new \InvalidArgumentException('Unknown query type.'); + } + } + /** * Compile select. *