From 3356091b65eea9fc5902e2b9b41b3adbda991f94 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 7 Mar 2009 04:44:16 +0000 Subject: Add in-request caching of vars that we've already looked up. We're still doing too many database queries, but this cuts down some dupes. --- core/helpers/module.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'core/helpers/module.php') diff --git a/core/helpers/module.php b/core/helpers/module.php index 0d43c248..190cec73 100644 --- a/core/helpers/module.php +++ b/core/helpers/module.php @@ -26,6 +26,7 @@ class module_Core { public static $module_names = array(); public static $modules = array(); + public static $var_cache = array(); static function get_version($module_name) { return ORM::factory("module")->where("name", $module_name)->find()->version; @@ -217,11 +218,17 @@ class module_Core { * @return the value */ static function get_var($module_name, $name, $default_value=null) { + if (isset(self::$var_cache[$module_name][$name])) { + return self::$var_cache[$module_name][$name]; + } + $var = ORM::factory("var") ->where("module_name", $module_name) ->where("name", $name) ->find(); - return $var->loaded ? $var->value : $default_value; + + self::$var_cache[$module_name][$name] = $var->loaded ? $var->value : $default_value; + return self::$var_cache[$module_name][$name]; } /** -- cgit v1.2.3