diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-02 21:34:17 +0200 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-05-02 21:34:17 +0200 |
commit | e231ba2ec1908f0ac914bd8f1b73771d707719b8 (patch) | |
tree | d26d6eddda7ee5c26c345f84804edb2592f6e395 /app | |
parent | 9c9625b0f6520f80996e17304805d8bae421f44c (diff) |
add custom app.json config and parser
Diffstat (limited to 'app')
-rw-r--r-- | app/news.php | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/app/news.php b/app/news.php index 1214c1918..ecf1a33d0 100644 --- a/app/news.php +++ b/app/news.php @@ -16,6 +16,8 @@ namespace OCA\News\App; use \OC\Files\View; use \OCP\AppFramework\App; +use \OCA\News\Config\AppConfig; + use \OCA\News\Core\Logger; use \OCA\News\Core\Db; @@ -214,7 +216,8 @@ class News extends App { */ $container->registerService('MapperFactory', function($c) { return new MapperFactory( - $c->query('CoreConfig'), $c->query('Db') + $c->query('DatabaseType'), + $c->query('Db') ); }); @@ -236,11 +239,45 @@ class News extends App { ); }); + + /** + * App config parser + */ + $container->registerService('AppConfig', function($c) { + // not performant but well :/ + $config = $c->query('ServerContainer')->getAppConfig(); + $installedApps = $config->getApps(); + $apps = array(); + foreach($installedApps as $app) { + $apps[] = array( + $app => $config->getValue($app, 'installed_version', '0') + ); + } + + // order extensions in name => version + $loadedExtensions = get_loaded_extensions(); + $extensions = array(); + foreach ($loadedExtensions as $extension) { + $extensions[$extension] = phpversion($extension); + } + + return new AppConfig( + $c->query('ServerContainer')->getNavigationManager(), + $c->query('L10N'), + $c->query('ServerContainer')->getURLGenerator(), + phpversion(), + implode('.', \OCP\Util::getVersion()), + $apps, + $extensions, + $c->query('DatabaseType') + ); + }); + /** * Core */ $container->registerService('L10N', function($c) { - return \OC_L10N::get($c['AppName']); + return $c->query('ServerContainer')->getL10N($c->query('AppName')); }); $container->registerService('UserId', function($c) { @@ -248,7 +285,7 @@ class News extends App { }); $container->registerService('Logger', function($c) { - return new Logger($c['AppName']); + return new Logger($c->query('AppName')); }); $container->registerService('Db', function($c) { @@ -259,6 +296,10 @@ class News extends App { return $c->query('ServerContainer')->getConfig(); }); + $container->registerService('DatabaseType', function($c) { + return $c->query('ServerContainer')->getConfig()->getSystemValue('dbtype'); + }); + /** * Utility @@ -398,5 +439,14 @@ class News extends App { $container->registerMiddleWare('CORSMiddleware'); } + + public function getAppConfig() { + return $this->getContainer()->query('AppConfig'); + } + + + public function getLogger() { + return $this->getContainer()->query('Logger'); + } } |