Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.0.x will end 8 May 2023 (12 months).
  • Bug fixes for security issues in 4.0.x will end 13 November 2023 (18 months).
  • PHP version: minimum PHP 7.3.0 Note: the minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is also supported.
   1  <?php
   2  
   3  /*
   4   * This file is part of Mustache.php.
   5   *
   6   * (c) 2010-2017 Justin Hileman
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  /**
  13   * Mustache Template array Loader implementation.
  14   *
  15   * An ArrayLoader instance loads Mustache Template source by name from an initial array:
  16   *
  17   *     $loader = new ArrayLoader(
  18   *         'foo' => '{{ bar }}',
  19   *         'baz' => 'Hey {{ qux }}!'
  20   *     );
  21   *
  22   *     $tpl = $loader->load('foo'); // '{{ bar }}'
  23   *
  24   * The ArrayLoader is used internally as a partials loader by Mustache_Engine instance when an array of partials
  25   * is set. It can also be used as a quick-and-dirty Template loader.
  26   */
  27  class Mustache_Loader_ArrayLoader implements Mustache_Loader, Mustache_Loader_MutableLoader
  28  {
  29      private $templates;
  30  
  31      /**
  32       * ArrayLoader constructor.
  33       *
  34       * @param array $templates Associative array of Template source (default: array())
  35       */
  36      public function __construct(array $templates = array())
  37      {
  38          $this->templates = $templates;
  39      }
  40  
  41      /**
  42       * Load a Template.
  43       *
  44       * @throws Mustache_Exception_UnknownTemplateException If a template file is not found
  45       *
  46       * @param string $name
  47       *
  48       * @return string Mustache Template source
  49       */
  50      public function load($name)
  51      {
  52          if (!isset($this->templates[$name])) {
  53              throw new Mustache_Exception_UnknownTemplateException($name);
  54          }
  55  
  56          return $this->templates[$name];
  57      }
  58  
  59      /**
  60       * Set an associative array of Template sources for this loader.
  61       *
  62       * @param array $templates
  63       */
  64      public function setTemplates(array $templates)
  65      {
  66          $this->templates = $templates;
  67      }
  68  
  69      /**
  70       * Set a Template source by name.
  71       *
  72       * @param string $name
  73       * @param string $template Mustache Template source
  74       */
  75      public function setTemplate($name, $template)
  76      {
  77          $this->templates[$name] = $template;
  78      }
  79  }