From b0de2d57a671edac447fdca244b1f957b762181b Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Thu, 5 Nov 2015 14:18:17 +0000 Subject: [PATCH] cache version number parsed from changelog for 5min on tree level --- phpgwapi/inc/class.egw_framework.inc.php | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/phpgwapi/inc/class.egw_framework.inc.php b/phpgwapi/inc/class.egw_framework.inc.php index b6ef3392c3..fd811136ac 100644 --- a/phpgwapi/inc/class.egw_framework.inc.php +++ b/phpgwapi/inc/class.egw_framework.inc.php @@ -1168,17 +1168,21 @@ abstract class egw_framework */ public static function api_version(&$changelog=null) { - $version = preg_replace('/[^0-9.]/', '', $GLOBALS['egw_info']['server']['versions']['phpgwapi']); - // parse version from changelog $changelog = EGW_SERVER_ROOT.'/doc/rpm-build/debian.changes'; - $matches = null; - if (($f = fopen($changelog, 'r')) && preg_match('/egroupware-epl \(([0-9.]+)/', fread($f, 80), $matches) && - version_compare($version, $matches[1], '<')) + + return egw_cache::getTree(__CLASS__, 'api_version', function() use ($changelog) { - $version = $matches[1]; - fclose($f); - } - return $version; + $version = preg_replace('/[^0-9.]/', '', $GLOBALS['egw_info']['server']['versions']['phpgwapi']); + // parse version from changelog + $matches = null; + if (($f = fopen($changelog, 'r')) && preg_match('/egroupware-epl \(([0-9.]+)/', fread($f, 80), $matches) && + version_compare($version, $matches[1], '<')) + { + $version = $matches[1]; + fclose($f); + } + return $version; + }, array(), 300); } /**