summaryrefslogtreecommitdiff
path: root/core/helpers/module.php
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-12-12 07:53:54 +0000
committerBharat Mediratta <bharat@menalto.com>2008-12-12 07:53:54 +0000
commit79226f0a8f820e08e5ff19cec7e8484fa7385fa9 (patch)
tree5f975a02fe363c6a2c85b8ac0e66085276160626 /core/helpers/module.php
parent6ef284ac401c7a8e72f8b2bad3058281ea6d7266 (diff)
Cache modules and module_names when we call load_modules so that we don't have to check every time
Diffstat (limited to 'core/helpers/module.php')
-rw-r--r--core/helpers/module.php7
1 files changed, 5 insertions, 2 deletions
diff --git a/core/helpers/module.php b/core/helpers/module.php
index dbb96af1..e9c28240 100644
--- a/core/helpers/module.php
+++ b/core/helpers/module.php
@@ -24,6 +24,7 @@
* Note: by design, this class does not do any permission checking.
*/
class module_Core {
+ private static $module_names = array();
private static $modules = array();
public static function get_version($module_name) {
@@ -50,7 +51,7 @@ class module_Core {
}
public static function is_installed($module_name) {
- return in_array($module_name, self::$modules);
+ return in_array($module_name, self::$module_names);
}
public static function installed() {
@@ -89,12 +90,14 @@ class module_Core {
try {
$kohana_modules = Kohana::config('core.modules');
foreach (ORM::factory("module")->find_all() as $module) {
- self::$modules[] = $module->as_array();
+ self::$module_names[] = $module->name;
+ self::$modules[] = $module;
$kohana_modules[] = MODPATH . $module->name;
}
Kohana::config_set('core.modules', $kohana_modules);
} catch (Exception $e) {
+ self::$module_names = array();
self::$modules = array();
}