Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
   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