ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.arObjectCache.php
Go to the documentation of this file.
1<?php
2require_once(dirname(__FILE__) . '/../Exception/class.arException.php');
3
12
16 protected static $cache = array();
17
18
25 public static function isCached($class, $id) {
26 if (!isset(self::$cache[$class])) {
27 return false;
28 }
29 if (!isset(self::$cache[$class][$id]) || !self::$cache[$class][$id] instanceof ActiveRecord) {
30 return false;
31 }
32
33 return in_array($id, array_keys(self::$cache[$class]));
34 }
35
36
40 public static function store(ActiveRecord $object) {
41 if (!isset($object->is_new)) {
42 self::$cache[get_class($object)][$object->getPrimaryFieldValue()] = $object;
43 }
44 }
45
46
47 public static function printStats() {
48 foreach (self::$cache as $class => $objects) {
49 echo $class;
50 echo ": ";
51 echo count($objects);
52 echo " Objects<br>";
53 }
54 }
55
56
64 public static function get($class, $id) {
65 if (!self::isCached($class, $id)) {
66 throw new arException(arException::GET_UNCACHED_OBJECT, $class . ': ' . $id);
67 }
68
69 return self::$cache[$class][$id];
70 }
71
72
76 public static function purge(ActiveRecord $object) {
77 unset(self::$cache[get_class($object)][$object->getPrimaryFieldValue()]);
78 }
79
80
84 public static function flush($class_name) {
85 if ($class_name instanceof ActiveRecord) {
86 $class_name = get_class($class_name);
87 }
88 unset(self::$cache[$class_name]);
89 }
90}
91
92?>
Class ActiveRecord.
Class arException.
const GET_UNCACHED_OBJECT
Class arObjectCache.
static isCached($class, $id)
static store(ActiveRecord $object)
static purge(ActiveRecord $object)
static flush($class_name)