From a9dc5deaaa8d931389390f37c2cff9a2551ca612 Mon Sep 17 00:00:00 2001 From: Marc Ole Bulling Date: Wed, 29 Apr 2020 19:54:05 +0200 Subject: [PATCH] Added SQLite check for #805 (#806) * Added SQLite check * Moved check behind Extensions check * Changed to SqlitePDO --- helpers/PrerequisiteChecker.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/helpers/PrerequisiteChecker.php b/helpers/PrerequisiteChecker.php index ea46c39e..66701d04 100644 --- a/helpers/PrerequisiteChecker.php +++ b/helpers/PrerequisiteChecker.php @@ -3,6 +3,7 @@ class ERequirementNotMet extends Exception { } const REQUIRED_PHP_EXTENSIONS = array('fileinfo', 'pdo_sqlite', 'gd'); +const REQUIRED_SQLITE_VERSION = "3.8.3"; class PrerequisiteChecker { @@ -12,6 +13,7 @@ class PrerequisiteChecker self::checkForConfigDistFile(); self::checkForComposer(); self::checkForPhpExtensions(); + self::checkForSqliteVersion(); } @@ -50,4 +52,21 @@ class PrerequisiteChecker } } } + + + private function checkForSqliteVersion() + { + $sqliteVersion = self::getSqlVersionAsString(); + if (version_compare($sqliteVersion, REQUIRED_SQLITE_VERSION, '<')) + { + throw new ERequirementNotMet('SQLite ' . REQUIRED_SQLITE_VERSION . ' is required, however you are running ' . $sqliteVersion); + } + } + + private function getSqlVersionAsString() + { + $dbh = new PDO('sqlite::memory:'); + return $dbh->query('select sqlite_version()')->fetch()[0]; + } + }