From 29000e2d6f49ed9b08b15a9f474dfb5b4145d800 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Tue, 21 Oct 2014 10:59:02 +0200 Subject: move databases into dependencies section --- config/appconfig.php | 58 ++++++++++++++++++++++++---------------------------- config/schema.json | 28 ++++++++++++------------- 2 files changed, 41 insertions(+), 45 deletions(-) (limited to 'config') diff --git a/config/appconfig.php b/config/appconfig.php index 0c59ba005..89c02a1de 100644 --- a/config/appconfig.php +++ b/config/appconfig.php @@ -150,9 +150,9 @@ class AppConfig { } - private function testDatabaseDependencies() { - if(array_key_exists('databases', $this->config)) { - $databases = $this->config['databases']; + private function testDatabaseDependencies($deps) { + if(array_key_exists('databases', $deps)) { + $databases = $deps['databases']; $databaseType = $this->databaseType; if(!in_array($databaseType, $databases)) { @@ -161,41 +161,33 @@ class AppConfig { implode(', ', $databases); } } + return ''; } - private function testPHPDependencies() { - if(array_key_exists('dependencies', $this->config)) { - - $deps = $this->config['dependencies']; - - if (array_key_exists('php', $deps)) { - return $this->requireVersion($this->phpVersion, $deps['php'], - 'PHP'); - } - + private function testPHPDependencies($deps) { + if (array_key_exists('php', $deps)) { + return $this->requireVersion($this->phpVersion, $deps['php'], + 'PHP'); } + return ''; } - private function testLibraryDependencies() { - if(array_key_exists('dependencies', $this->config)) { - - $deps = $this->config['dependencies']; - - if (array_key_exists('libs', $deps)) { - foreach ($deps['libs'] as $lib => $versions) { - if(array_key_exists($lib, $this->installedExtensions)) { - return $this->requireVersion($this->installedExtensions[$lib], - $versions, 'PHP extension ' . $lib); - } else { - return 'PHP extension ' . $lib . ' required but not installed'; - } + private function testLibraryDependencies($deps) { + if (array_key_exists('libs', $deps)) { + foreach ($deps['libs'] as $lib => $versions) { + if(array_key_exists($lib, $this->installedExtensions)) { + return $this->requireVersion($this->installedExtensions[$lib], + $versions, 'PHP extension ' . $lib); + } else { + return 'PHP extension ' . $lib . ' required but not installed'; } } } + return ''; } @@ -205,12 +197,16 @@ class AppConfig { * @throws DependencyException if one version is not satisfied */ public function testDependencies() { - $msg = $this->testDatabaseDependencies(); - $msg .= $this->testPHPDependencies(); - $msg .= $this->testLibraryDependencies(); + if(array_key_exists('dependencies', $this->config)) { + $deps = $this->config['dependencies']; - if($msg !== '') { - throw new DependencyException($msg); + $msg = $this->testDatabaseDependencies($deps); + $msg .= $this->testPHPDependencies($deps); + $msg .= $this->testLibraryDependencies($deps); + + if($msg !== '') { + throw new DependencyException($msg); + } } } diff --git a/config/schema.json b/config/schema.json index a6303f54a..7e44878c9 100644 --- a/config/schema.json +++ b/config/schema.json @@ -115,19 +115,11 @@ }, "additionalProperties": false }, - "databases": { - "type": "array", - "items": { - "type": "string", - "enum": ["pgsql", "mysql", "sqlite3", "mssql", "oracle"] - }, - "uniqueItems": true - }, "categories": { "type": "array", "items": { "type": "string", - "enum": ["Filesystem", "Authentication", "PIM", "Multimedia", + "enum": ["Filesystem", "Authentication", "PIM", "Multimedia", "Productivity", "Games", "Tools", "Other"] }, "minItems": 1, @@ -136,6 +128,14 @@ "dependencies": { "type": "object", "properties": { + "databases": { + "type": "array", + "items": { + "type": "string", + "enum": ["pgsql", "mysql", "sqlite3", "mssql", "oracle"] + }, + "uniqueItems": true + }, "php": { "type": "string", "pattern": "^((=|<|>|<=|>=)?[0-9]+(\\.[0-9]+)*(,(=|<|>|<=|>=)?[0-9]+(\\.[0-9]+)*)*|\\*)$" @@ -167,11 +167,11 @@ } }, "required": [ - "name", - "id", - "description", - "licence", - "version", + "name", + "id", + "description", + "licence", + "version", "authors", "repository" ], -- cgit v1.2.3