mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2024-11-14 01:08:41 +00:00
f3d050c517
The first bug is that we will repeatedly write out the result of a customized raw definition to the filesystem, even when a cache entry already exists. The second bug is that caching these definitions doesn't actually work (the cache entry is written but never used.) A new API for retrieving raw definitions permits the user to take advantage of caching. Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Super-class for definition datatype objects, implements serialization
|
|
* functions for the class.
|
|
*/
|
|
abstract class HTMLPurifier_Definition
|
|
{
|
|
|
|
/**
|
|
* Has setup() been called yet?
|
|
*/
|
|
public $setup = false;
|
|
|
|
/**
|
|
* If true, write out the final definition object to the cache after
|
|
* setup. This will be true only if all invocations to get a raw
|
|
* definition object are also optimized. This does not cause file
|
|
* system thrashing because on subsequent calls the cached object
|
|
* is used and any writes to the raw definition object are short
|
|
* circuited. See enduser-customize.html for the high-level
|
|
* picture.
|
|
*/
|
|
public $optimized = null;
|
|
|
|
/**
|
|
* What type of definition is it?
|
|
*/
|
|
public $type;
|
|
|
|
/**
|
|
* Sets up the definition object into the final form, something
|
|
* not done by the constructor
|
|
* @param $config HTMLPurifier_Config instance
|
|
*/
|
|
abstract protected function doSetup($config);
|
|
|
|
/**
|
|
* Setup function that aborts if already setup
|
|
* @param $config HTMLPurifier_Config instance
|
|
*/
|
|
public function setup($config) {
|
|
if ($this->setup) return;
|
|
$this->setup = true;
|
|
$this->doSetup($config);
|
|
}
|
|
|
|
}
|
|
|
|
// vim: et sw=4 sts=4
|