Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / library / HTMLPurifier / EntityLookup.php
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