class ilObjectDataCache More...
Public Member Functions | |
| ilObjectDataCache () | |
| deleteCachedEntry ($a_obj_id) | |
| lookupObjId ($a_ref_id) | |
| lookupTitle ($a_obj_id) | |
| lookupType ($a_obj_id) | |
| lookupOwner ($a_obj_id) | |
| lookupDescription ($a_obj_id) | |
| lookupLastUpdate ($a_obj_id) | |
| __isReferenceCached ($a_ref_id) | |
| checks whether an reference id is already in cache or not | |
| __isObjectCached ($a_obj_id) | |
| checks whether an object is aleady in cache or not | |
| __storeReference ($a_ref_id) | |
| Stores Reference in cache. | |
| __storeObjectData ($a_obj_id, $a_lang="") | |
| Stores object data in cache. | |
| preloadObjectCache ($a_obj_ids, $a_lang="") | |
| Stores object data in cache. | |
| preloadReferenceCache ($a_ref_ids, $a_incl_obj=true) | |
Data Fields | |
| $db = null | |
| $reference_cache = array() | |
| $object_data_cache = array() | |
class ilObjectDataCache
This class caches some properties of the object_data table. Like title description owner obj_id
Definition at line 33 of file class.ilObjectDataCache.php.
| ilObjectDataCache::__isObjectCached | ( | $ | a_obj_id | ) |
checks whether an object is aleady in cache or not
private
| int | $a_obj_id object id |
Definition at line 139 of file class.ilObjectDataCache.php.
Referenced by lookupDescription(), lookupLastUpdate(), lookupOwner(), lookupTitle(), and lookupType().
{
static $cached = 0;
static $not_cached = 0;
if(@$this->object_data_cache[$a_obj_id])
{
#echo "Object ". ++$cached ."cached<br>";
return true;
}
#echo "Object ". ++$not_cached ." not cached<br>";
return false;
}
Here is the caller graph for this function:| ilObjectDataCache::__isReferenceCached | ( | $ | a_ref_id | ) |
checks whether an reference id is already in cache or not
private
| int | $a_ref_id reference id |
Definition at line 116 of file class.ilObjectDataCache.php.
Referenced by lookupObjId().
{
#return false;
#static $cached = 0;
#static $not_cached = 0;
if(@$this->reference_cache[$a_ref_id])
{
#echo "Reference ". ++$cached ."cached<br>";
return true;
}
#echo "Reference ". ++$not_cached ." not cached<br>";
return false;
}
Here is the caller graph for this function:| ilObjectDataCache::__storeObjectData | ( | $ | a_obj_id, | |
| $ | a_lang = "" | |||
| ) |
Stores object data in cache.
private
| int | $a_obj_id object id |
Definition at line 184 of file class.ilObjectDataCache.php.
References $res.
Referenced by lookupDescription(), lookupLastUpdate(), lookupObjId(), lookupOwner(), lookupTitle(), and lookupType().
{
global $ilDB, $objDefinition, $ilUser;
if (is_object($ilUser) && $a_lang == "")
{
$a_lang = $ilUser->getLanguage();
}
$query = "SELECT * FROM object_data WHERE obj_id = ".
$ilDB->quote($a_obj_id);
$res = $this->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
$this->object_data_cache[$a_obj_id]['title'] = $row->title;
$this->object_data_cache[$a_obj_id]['description'] = $row->description;
$this->object_data_cache[$a_obj_id]['type'] = $row->type;
$this->object_data_cache[$a_obj_id]['owner'] = $row->owner;
$this->object_data_cache[$a_obj_id]['last_update'] = $row->last_update;
//$ilBench->start("Tree", "fetchNodeData_readDefinition");
if (is_object($objDefinition))
{
$translation_type = $objDefinition->getTranslationType($row->type);
}
//$ilBench->stop("Tree", "fetchNodeData_readDefinition");
if ($translation_type == "db")
{
//$ilBench->start("Tree", "fetchNodeData_getTranslation");
$q = "SELECT title,description FROM object_translation ".
"WHERE obj_id = ".$ilDB->quote($a_obj_id)." ".
"AND lang_code = ".$ilDB->quote($a_lang)." ".
"AND NOT lang_default = 1";
$r = $ilDB->query($q);
$row = $r->fetchRow(DB_FETCHMODE_OBJECT);
if ($row)
{
$this->object_data_cache[$a_obj_id]['title'] = $row->title;
$this->object_data_cache[$a_obj_id]['description'] = $row->description;
}
//$ilBench->stop("Tree", "fetchNodeData_getTranslation");
}
}
return true;
}
Here is the caller graph for this function:| ilObjectDataCache::__storeReference | ( | $ | a_ref_id | ) |
Stores Reference in cache.
Maybe it could be useful to find all references of that object andd store them also in the cache. But this would be an extra query.
private
| int | $a_ref_id reference id |
Definition at line 164 of file class.ilObjectDataCache.php.
References $res.
Referenced by lookupObjId().
{
global $ilDB;
$query = "SELECT obj_id FROM object_reference WHERE ref_id = ".$ilDB->quote($a_ref_id);
$res = $this->db->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
{
$this->reference_cache[$a_ref_id] = $row['obj_id'];
}
return (int) @$this->reference_cache[$a_ref_id];
}
Here is the caller graph for this function:| ilObjectDataCache::deleteCachedEntry | ( | $ | a_obj_id | ) |
Definition at line 46 of file class.ilObjectDataCache.php.
{
unset($this->object_data_cache[$a_obj_id]);
}
| ilObjectDataCache::ilObjectDataCache | ( | ) |
Definition at line 39 of file class.ilObjectDataCache.php.
{
global $ilDB;
$this->db =& $ilDB;
}
| ilObjectDataCache::lookupDescription | ( | $ | a_obj_id | ) |
Definition at line 90 of file class.ilObjectDataCache.php.
References __isObjectCached(), and __storeObjectData().
{
if(!$this->__isObjectCached($a_obj_id))
{
$this->__storeObjectData($a_obj_id);
}
return @$this->object_data_cache[$a_obj_id]['description'];
}
Here is the call graph for this function:| ilObjectDataCache::lookupLastUpdate | ( | $ | a_obj_id | ) |
Definition at line 99 of file class.ilObjectDataCache.php.
References __isObjectCached(), and __storeObjectData().
{
if(!$this->__isObjectCached($a_obj_id))
{
$this->__storeObjectData($a_obj_id);
}
return @$this->object_data_cache[$a_obj_id]['last_update'];
}
Here is the call graph for this function:| ilObjectDataCache::lookupObjId | ( | $ | a_ref_id | ) |
Definition at line 51 of file class.ilObjectDataCache.php.
References __isReferenceCached(), __storeObjectData(), and __storeReference().
{
if(!$this->__isReferenceCached($a_ref_id))
{
//echo"-objidmissed-$a_ref_id-";
$obj_id = $this->__storeReference($a_ref_id);
$this->__storeObjectData($obj_id);
}
return (int) @$this->reference_cache[$a_ref_id];
}
Here is the call graph for this function:| ilObjectDataCache::lookupOwner | ( | $ | a_obj_id | ) |
Definition at line 81 of file class.ilObjectDataCache.php.
References __isObjectCached(), and __storeObjectData().
{
if(!$this->__isObjectCached($a_obj_id))
{
$this->__storeObjectData($a_obj_id);
}
return @$this->object_data_cache[$a_obj_id]['owner'];
}
Here is the call graph for this function:| ilObjectDataCache::lookupTitle | ( | $ | a_obj_id | ) |
Definition at line 62 of file class.ilObjectDataCache.php.
References __isObjectCached(), and __storeObjectData().
{
if(!$this->__isObjectCached($a_obj_id))
{
$this->__storeObjectData($a_obj_id);
}
return @$this->object_data_cache[$a_obj_id]['title'];
}
Here is the call graph for this function:| ilObjectDataCache::lookupType | ( | $ | a_obj_id | ) |
Definition at line 71 of file class.ilObjectDataCache.php.
References __isObjectCached(), and __storeObjectData().
{
if(!$this->__isObjectCached($a_obj_id))
{
//echo"-typemissed-$a_obj_id-";
$this->__storeObjectData($a_obj_id);
}
return @$this->object_data_cache[$a_obj_id]['type'];
}
Here is the call graph for this function:| ilObjectDataCache::preloadObjectCache | ( | $ | a_obj_ids, | |
| $ | a_lang = "" | |||
| ) |
Stores object data in cache.
private
| int | $a_obj_id object id |
Definition at line 240 of file class.ilObjectDataCache.php.
References $res, and ilUtil::quoteArray().
Referenced by preloadReferenceCache().
{
global $ilDB, $objDefinition, $ilUser;
if (is_object($ilUser) && $a_lang == "")
{
$a_lang = $ilUser->getLanguage();
}
//echo "<br>-preloading-"; var_dump($a_obj_ids);
if (!is_array($a_obj_ids)) return;
if (count($a_obj_ids) == 0) return;
$query = "SELECT * FROM object_data WHERE obj_id IN (".
implode(",",ilUtil::quoteArray($a_obj_ids)).")";
$res = $ilDB->query($query);
while($row = $res->fetchRow(DB_FETCHMODE_OBJECT))
{
//echo "<br>store_obj-".$row->obj_id."-".$row->type."-".$row->title."-";
$this->object_data_cache[$row->obj_id]['title'] = $row->title;
$this->object_data_cache[$row->obj_id]['description'] = $row->description;
$this->object_data_cache[$row->obj_id]['type'] = $row->type;
$this->object_data_cache[$row->obj_id]['owner'] = $row->owner;
$this->object_data_cache[$row->obj_id]['last_update'] = $row->last_update;
if (is_object($objDefinition))
{
$translation_type = $objDefinition->getTranslationType($row->type);
}
//$ilBench->stop("Tree", "fetchNodeData_readDefinition");
if ($translation_type == "db")
{
//$ilBench->start("Tree", "fetchNodeData_getTranslation");
$q = "SELECT title,description FROM object_translation ".
"WHERE obj_id = ".$ilDB->quote($row->obj_id)." ".
"AND lang_code = ".$ilDB->quote($a_lang)." ".
"AND NOT lang_default = 1";
$r = $ilDB->query($q);
$row2 = $r->fetchRow(DB_FETCHMODE_OBJECT);
if ($row2)
{
$this->object_data_cache[$row->obj_id]['title'] = $row2->title;
$this->object_data_cache[$row->obj_id]['description'] = $row2->description;
}
//$ilBench->stop("Tree", "fetchNodeData_getTranslation");
}
}
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilObjectDataCache::preloadReferenceCache | ( | $ | a_ref_ids, | |
| $ | a_incl_obj = true | |||
| ) |
Definition at line 291 of file class.ilObjectDataCache.php.
References $res, preloadObjectCache(), and ilUtil::quoteArray().
{
global $ilDB;
if (!is_array($a_ref_ids)) return;
if (count($a_ref_ids) == 0) return;
$query = "SELECT ref_id, obj_id FROM object_reference WHERE ref_id IN (".
implode(",",ilUtil::quoteArray($a_ref_ids)).")";
$res = $this->db->query($query);
$obj_ids = array();
while($row = $res->fetchRow(DB_FETCHMODE_ASSOC))
{
$this->reference_cache[$row['ref_id']] = $row['obj_id'];
//echo "<br>store_ref-".$row['ref_id']."-".$row['obj_id']."-";
$obj_ids[] = $row['obj_id'];
}
if ($a_incl_obj)
{
$this->preloadObjectCache($obj_ids);
}
}
Here is the call graph for this function:| ilObjectDataCache::$db = null |
Definition at line 35 of file class.ilObjectDataCache.php.
| ilObjectDataCache::$object_data_cache = array() |
Definition at line 37 of file class.ilObjectDataCache.php.
| ilObjectDataCache::$reference_cache = array() |
Definition at line 36 of file class.ilObjectDataCache.php.
1.7.1