Added SQLite check for #805 (#806)

* Added SQLite check

* Moved check behind Extensions check

* Changed to SqlitePDO
This commit is contained in:
Marc Ole Bulling 2020-04-29 19:54:05 +02:00 committed by GitHub
parent 86b7cfed29
commit a9dc5deaaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,6 +3,7 @@
class ERequirementNotMet extends Exception { } class ERequirementNotMet extends Exception { }
const REQUIRED_PHP_EXTENSIONS = array('fileinfo', 'pdo_sqlite', 'gd'); const REQUIRED_PHP_EXTENSIONS = array('fileinfo', 'pdo_sqlite', 'gd');
const REQUIRED_SQLITE_VERSION = "3.8.3";
class PrerequisiteChecker class PrerequisiteChecker
{ {
@ -12,6 +13,7 @@ class PrerequisiteChecker
self::checkForConfigDistFile(); self::checkForConfigDistFile();
self::checkForComposer(); self::checkForComposer();
self::checkForPhpExtensions(); 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];
}
} }