86 lines
2 KiB
PHP
86 lines
2 KiB
PHP
|
<?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
|
||
|
{
|
||
|
/**
|
||
|
* @type array
|
||
|
*/
|
||
|
protected $definitions;
|
||
|
|
||
|
/**
|
||
|
* @type string
|
||
|
*/
|
||
|
public $name = 'Memory';
|
||
|
|
||
|
/**
|
||
|
* @return HTMLPurifier_DefinitionCache_Decorator_Memory
|
||
|
*/
|
||
|
public function copy()
|
||
|
{
|
||
|
return new HTMLPurifier_DefinitionCache_Decorator_Memory();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param HTMLPurifier_Definition $def
|
||
|
* @param HTMLPurifier_Config $config
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function add($def, $config)
|
||
|
{
|
||
|
$status = parent::add($def, $config);
|
||
|
if ($status) {
|
||
|
$this->definitions[$this->generateKey($config)] = $def;
|
||
|
}
|
||
|
return $status;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param HTMLPurifier_Definition $def
|
||
|
* @param HTMLPurifier_Config $config
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function set($def, $config)
|
||
|
{
|
||
|
$status = parent::set($def, $config);
|
||
|
if ($status) {
|
||
|
$this->definitions[$this->generateKey($config)] = $def;
|
||
|
}
|
||
|
return $status;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param HTMLPurifier_Definition $def
|
||
|
* @param HTMLPurifier_Config $config
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function replace($def, $config)
|
||
|
{
|
||
|
$status = parent::replace($def, $config);
|
||
|
if ($status) {
|
||
|
$this->definitions[$this->generateKey($config)] = $def;
|
||
|
}
|
||
|
return $status;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @param HTMLPurifier_Config $config
|
||
|
* @return mixed
|
||
|
*/
|
||
|
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
|