47 lines
1.3 KiB
PHP
Executable file
47 lines
1.3 KiB
PHP
Executable file
<?php
|
|
|
|
/**
|
|
* Definition cache decorator class that saves all cache retrievals
|
|
* to PHP's memory; good for unit tests or circumstances where
|
|
* there are lots of configuration objects floating around.
|
|
*/
|
|
class HTMLPurifier_DefinitionCache_Decorator_Memory extends
|
|
HTMLPurifier_DefinitionCache_Decorator
|
|
{
|
|
|
|
protected $definitions;
|
|
public $name = 'Memory';
|
|
|
|
public function copy() {
|
|
return new HTMLPurifier_DefinitionCache_Decorator_Memory();
|
|
}
|
|
|
|
public function add($def, $config) {
|
|
$status = parent::add($def, $config);
|
|
if ($status) $this->definitions[$this->generateKey($config)] = $def;
|
|
return $status;
|
|
}
|
|
|
|
public function set($def, $config) {
|
|
$status = parent::set($def, $config);
|
|
if ($status) $this->definitions[$this->generateKey($config)] = $def;
|
|
return $status;
|
|
}
|
|
|
|
public function replace($def, $config) {
|
|
$status = parent::replace($def, $config);
|
|
if ($status) $this->definitions[$this->generateKey($config)] = $def;
|
|
return $status;
|
|
}
|
|
|
|
public function get($config) {
|
|
$key = $this->generateKey($config);
|
|
if (isset($this->definitions[$key])) return $this->definitions[$key];
|
|
$this->definitions[$key] = parent::get($config);
|
|
return $this->definitions[$key];
|
|
}
|
|
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|