PATH:
home
/
lab2454c
/
healthvalidate.com
/
vendor
/
ezyang
/
htmlpurifier
/
library
/
HTMLPurifier
<?php /** * Abstract class representing Definition cache managers that implements * useful common methods and is a factory. * @todo Create a separate maintenance file advanced users can use to * cache their custom HTMLDefinition, which can be loaded * via a configuration directive * @todo Implement memcached */ abstract class HTMLPurifier_DefinitionCache { /** * @type string */ public $type; /** * @param string $type Type of definition objects this instance of the * cache will handle. */ public function __construct($type) { $this->type = $type; } /** * Generates a unique identifier for a particular configuration * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config * @return string */ public function generateKey($config) { return $config->version . ',' . // possibly replace with function calls $config->getBatchSerial($this->type) . ',' . $config->get($this->type . '.DefinitionRev'); } /** * Tests whether or not a key is old with respect to the configuration's * version and revision number. * @param string $key Key to test * @param HTMLPurifier_Config $config Instance of HTMLPurifier_Config to test against * @return bool */ public function isOld($key, $config) { if (substr_count($key, ',') < 2) { return true; } list($version, $hash, $revision) = explode(',', $key, 3); $compare = version_compare($version, $config->version); // version mismatch, is always old if ($compare != 0) { return true; } // versions match, ids match, check revision number if ($hash == $config->getBatchSerial($this->type) && $revision < $config->get($this->type . '.DefinitionRev')) { return true; } return false; } /** * Checks if a definition's type jives with the cache's type * @note Throws an error on failure * @param HTMLPurifier_Definition $def Definition object to check * @return bool true if good, false if not */ public function checkDefType($def) { if ($def->type !== $this->type) { trigger_error("Cannot use definition of type {$def->type} in cache for {$this->type}"); return false; } return true; } /** * Adds a definition object to the cache * @param HTMLPurifier_Definition $def * @param HTMLPurifier_Config $config */ abstract public function add($def, $config); /** * Unconditionally saves a definition object to the cache * @param HTMLPurifier_Definition $def * @param HTMLPurifier_Config $config */ abstract public function set($def, $config); /** * Replace an object in the cache * @param HTMLPurifier_Definition $def * @param HTMLPurifier_Config $config */ abstract public function replace($def, $config); /** * Retrieves a definition object from the cache * @param HTMLPurifier_Config $config */ abstract public function get($config); /** * Removes a definition object to the cache * @param HTMLPurifier_Config $config */ abstract public function remove($config); /** * Clears all objects from cache * @param HTMLPurifier_Config $config */ abstract public function flush($config); /** * Clears all expired (older version or revision) objects from cache * @note Be careful implementing this method as flush. Flush must * not interfere with other Definition types, and cleanup() * should not be repeatedly called by userland code. * @param HTMLPurifier_Config $config */ abstract public function cleanup($config); } // vim: et sw=4 sts=4
[+]
Injector
[-] CSSDefinition.php
[edit]
[+]
URIScheme
[-] TagTransform.php
[edit]
[+]
DefinitionCache
[+]
HTMLModule
[-] Filter.php
[edit]
[-] Language.php
[edit]
[+]
VarParser
[-] ChildDef.php
[edit]
[-] TokenFactory.php
[edit]
[-] Printer.php
[edit]
[+]
Lexer
[-] Context.php
[edit]
[+]
..
[+]
URIFilter
[-] Encoder.php
[edit]
[+]
Strategy
[-] Config.php
[edit]
[-] DefinitionCacheFactory.php
[edit]
[-] Definition.php
[edit]
[-] PropertyList.php
[edit]
[-] AttrCollections.php
[edit]
[-] EntityLookup.php
[edit]
[-] LanguageFactory.php
[edit]
[-] UnitConverter.php
[edit]
[-] Bootstrap.php
[edit]
[+]
ChildDef
[-] Node.php
[edit]
[-] URIDefinition.php
[edit]
[-] Length.php
[edit]
[+]
AttrDef
[-] ElementDef.php
[edit]
[-] Injector.php
[edit]
[+]
ConfigSchema
[-] EntityParser.php
[edit]
[-] Token.php
[edit]
[-] StringHash.php
[edit]
[-] AttrDef.php
[edit]
[+]
Filter
[-] IDAccumulator.php
[edit]
[-] ErrorStruct.php
[edit]
[-] HTMLDefinition.php
[edit]
[-] StringHashParser.php
[edit]
[-] Queue.php
[edit]
[-] ErrorCollector.php
[edit]
[-] URIParser.php
[edit]
[-] URI.php
[edit]
[-] ConfigSchema.php
[edit]
[-] ContentSets.php
[edit]
[-] Doctype.php
[edit]
[-] AttrValidator.php
[edit]
[-] URIScheme.php
[edit]
[-] PropertyListIterator.php
[edit]
[-] HTMLModuleManager.php
[edit]
[-] Strategy.php
[edit]
[-] DefinitionCache.php
[edit]
[-] Generator.php
[edit]
[-] PercentEncoder.php
[edit]
[+]
Printer
[-] AttrTransform.php
[edit]
[-] Exception.php
[edit]
[-] URIFilter.php
[edit]
[-] VarParserException.php
[edit]
[-] AttrTypes.php
[edit]
[+]
Token
[+]
TagTransform
[+]
Language
[+]
EntityLookup
[-] Arborize.php
[edit]
[-] Lexer.php
[edit]
[-] DoctypeRegistry.php
[edit]
[+]
AttrTransform
[+]
Node
[-] URISchemeRegistry.php
[edit]
[-] VarParser.php
[edit]
[-] HTMLModule.php
[edit]
[-] Zipper.php
[edit]