getQueries($file); array_map(function($query) use ($file) { $this->execute($query, $file); }, $queries); } protected function execute(&$query, $file) { try { $pdo = Manager::connection()->getPdo(); if (empty($query) === false) { $statement = $pdo->prepare($query); $statement->execute(); } } catch (\PDOException $exc) { $this->queryResults[] = [ self::STATUS => self::STATUS_ERROR, self::ERROR_MESSAGE => $exc->getMessage(), self::FILE => $file, self::RAW_QUERY => str_replace(PHP_EOL, '
', $query) ]; return null; } $this->queryResults[] = [ self::STATUS => self::STATUS_SUCCESS, self::FILE => $file, self::RAW_QUERY => $query ]; } protected function getQueries($file) { return array_filter(explode(';', Reader::read($file)->get()), function ($element) { $tElement = trim($element); if ($element === '' || $tElement === '') { return false; } return true; }); } public function isInstallCorrect() { foreach ($this->queryResults as $result) { if ($result[self::STATUS] === self::STATUS_ERROR) { return false; } } return true; } public function getFailedQueries() { $failedList = []; foreach ($this->queryResults as $result) { if ($result[self::STATUS] === self::STATUS_ERROR) { $failedList[] = $result; } } return $failedList; } public function getQueriesResults() { return $this->queryResults; } }