class Twig_Loader_Array

Loads a template from an array.

When using this loader with a cache mechanism, you should know that a new cache key is generated each time a template content "changes" (the cache key being the source code of the template). If you don't want to see your cache grows out of control, you need to take care of clearing the old cache file by yourself.

@package twig @author Fabien Potencier <fabien@symfony.com>

Hierarchy

Expanded class hierarchy of Twig_Loader_Array

File

drupal/core/vendor/twig/twig/lib/Twig/Loader/Array.php, line 23

View source
class Twig_Loader_Array implements Twig_LoaderInterface {
  protected $templates;

  /**
   * Constructor.
   *
   * @param array $templates An array of templates (keys are the names, and values are the source code)
   *
   * @see Twig_Loader
   */
  public function __construct(array $templates) {
    $this->templates = array();
    foreach ($templates as $name => $template) {
      $this->templates[$name] = $template;
    }
  }

  /**
   * Adds or overrides a template.
   *
   * @param string $name     The template name
   * @param string $template The template source
   */
  public function setTemplate($name, $template) {
    $this->templates[(string) $name] = $template;
  }

  /**
   * Gets the source code of a template, given its name.
   *
   * @param string $name The name of the template to load
   *
   * @return string The template source code
   */
  public function getSource($name) {
    $name = (string) $name;
    if (!isset($this->templates[$name])) {
      throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
    }
    return $this->templates[$name];
  }

  /**
   * Gets the cache key to use for the cache for a given template name.
   *
   * @param string $name The name of the template to load
   *
   * @return string The cache key
   */
  public function getCacheKey($name) {
    $name = (string) $name;
    if (!isset($this->templates[$name])) {
      throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
    }
    return $this->templates[$name];
  }

  /**
   * Returns true if the template is still fresh.
   *
   * @param string    $name The template name
   * @param timestamp $time The last modification time of the cached template
   */
  public function isFresh($name, $time) {
    $name = (string) $name;
    if (!isset($this->templates[$name])) {
      throw new Twig_Error_Loader(sprintf('Template "%s" is not defined.', $name));
    }
    return true;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Twig_Loader_Array::$templates protected property
Twig_Loader_Array::getCacheKey public function Gets the cache key to use for the cache for a given template name. Overrides Twig_LoaderInterface::getCacheKey
Twig_Loader_Array::getSource public function Gets the source code of a template, given its name. Overrides Twig_LoaderInterface::getSource
Twig_Loader_Array::isFresh public function Returns true if the template is still fresh. Overrides Twig_LoaderInterface::isFresh
Twig_Loader_Array::setTemplate public function Adds or overrides a template.
Twig_Loader_Array::__construct public function Constructor.