<?php
/**
* This class stores an arbitrary value along with its dependencies.
- * Users should typically only use DependencyWrapper::getFromCache(), rather
- * than instantiating one of these objects directly.
+ * Users should typically only use DependencyWrapper::getValueFromCache(),
+ * rather than instantiating one of these objects directly.
* @ingroup Cache
*/
+
class DependencyWrapper {
var $value;
var $deps;
*/
function __construct( $value = false, $deps = array() ) {
$this->value = $value;
+
if ( !is_array( $deps ) ) {
$deps = array( $deps );
}
+
$this->deps = $deps;
}
return true;
}
}
+
return false;
}
$callbackParams = array(), $deps = array() )
{
$obj = $cache->get( $key );
+
if ( is_object( $obj ) && $obj instanceof DependencyWrapper && !$obj->isExpired() ) {
$value = $obj->value;
} elseif ( $callback ) {
} else {
$value = null;
}
+
return $value;
}
}
if ( !isset( $this->titleObj ) ) {
$this->titleObj = Title::makeTitle( $this->ns, $this->dbk );
}
+
return $this->titleObj;
}
foreach ( $this->getLinkBatch()->data as $ns => $dbks ) {
if ( count( $dbks ) > 0 ) {
$timestamps[$ns] = array();
+
foreach ( $dbks as $dbk => $value ) {
$timestamps[$ns][$dbk] = false;
}
__METHOD__
);
- while ( $row = $dbr->fetchObject( $res ) ) {
+ foreach ( $res as $row ) {
$timestamps[$row->page_namespace][$row->page_title] = $row->page_touched;
}
}
+
return $timestamps;
}
function isExpired() {
$newTimestamps = $this->calculateTimestamps();
+
foreach ( $this->timestamps as $ns => $dbks ) {
foreach ( $dbks as $dbk => $oldTimestamp ) {
$newTimestamp = $newTimestamps[$ns][$dbk];
}
}
}
+
return false;
}
}