1: | <?php |
2: | |
3: | /** |
4: | * Object that provides entity lookup table from entity name to character |
5: | */ |
6: | class HTMLPurifier_EntityLookup |
7: | { |
8: | /** |
9: | * Assoc array of entity name to character represented. |
10: | * @type array |
11: | */ |
12: | public $table; |
13: | |
14: | /** |
15: | * Sets up the entity lookup table from the serialized file contents. |
16: | * @param bool $file |
17: | * @note The serialized contents are versioned, but were generated |
18: | * using the maintenance script generate_entity_file.php |
19: | * @warning This is not in constructor to help enforce the Singleton |
20: | */ |
21: | public function setup($file = false) |
22: | { |
23: | if (!$file) { |
24: | $file = HTMLPURIFIER_PREFIX . '/HTMLPurifier/EntityLookup/entities.ser'; |
25: | } |
26: | $this->table = unserialize(file_get_contents($file)); |
27: | } |
28: | |
29: | /** |
30: | * Retrieves sole instance of the object. |
31: | * @param bool|HTMLPurifier_EntityLookup $prototype Optional prototype of custom lookup table to overload with. |
32: | * @return HTMLPurifier_EntityLookup |
33: | */ |
34: | public static function instance($prototype = false) |
35: | { |
36: | // no references, since PHP doesn't copy unless modified |
37: | static $instance = null; |
38: | if ($prototype) { |
39: | $instance = $prototype; |
40: | } elseif (!$instance) { |
41: | $instance = new HTMLPurifier_EntityLookup(); |
42: | $instance->setup(); |
43: | } |
44: | return $instance; |
45: | } |
46: | } |
47: | |
48: | // vim: et sw=4 sts=4 |
49: |