From: Robin Appelman Date: Wed, 18 Dec 2013 14:28:32 +0000 (+0100) Subject: dont re-read the config values for an app when a non existing key is fetched X-Git-Tag: v7.0.0alpha2~1005^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2e195dbdae2f270d40191ff6f01d10cc81c1dc06;p=nextcloud-server.git dont re-read the config values for an app when a non existing key is fetched --- diff --git a/lib/private/appconfig.php b/lib/private/appconfig.php index 58c037a91e7..dfe03698059 100644 --- a/lib/private/appconfig.php +++ b/lib/private/appconfig.php @@ -41,6 +41,8 @@ class OC_Appconfig { private static $cache = array(); + private static $appsLoaded = array(); + /** * @brief Get all apps using the config * @return array with app ids @@ -86,11 +88,14 @@ class OC_Appconfig { if (!isset(self::$cache[$app])) { self::$cache[$app] = array(); } - $query = OC_DB::prepare('SELECT `configvalue`, `configkey` FROM `*PREFIX*appconfig`' - . ' WHERE `appid` = ?'); - $result = $query->execute(array($app)); - while ($row = $result->fetchRow()) { - self::$cache[$app][$row['configkey']] = $row['configvalue']; + if (array_search($app, self::$appsLoaded) === false) { + $query = OC_DB::prepare('SELECT `configvalue`, `configkey` FROM `*PREFIX*appconfig`' + . ' WHERE `appid` = ?'); + $result = $query->execute(array($app)); + while ($row = $result->fetchRow()) { + self::$cache[$app][$row['configkey']] = $row['configvalue']; + } + self::$appsLoaded[] = $app; } return self::$cache[$app]; }