protected function Twig_Loader_Filesystem::findTemplate

4 calls to Twig_Loader_Filesystem::findTemplate()

File

drupal/core/vendor/twig/twig/lib/Twig/Loader/Filesystem.php, line 163

Class

Twig_Loader_Filesystem
Loads template from the filesystem.

Code

protected function findTemplate($name) {
  $name = (string) $name;

  // normalize name
  $name = preg_replace('#/{2,}#', '/', strtr($name, '\\', '/'));
  if (isset($this->cache[$name])) {
    return $this->cache[$name];
  }
  $this
    ->validateName($name);
  $namespace = '__main__';
  if (isset($name[0]) && '@' == $name[0]) {
    if (false === ($pos = strpos($name, '/'))) {
      throw new Twig_Error_Loader(sprintf('Malformed namespaced template name "%s" (expecting "@namespace/template_name").', $name));
    }
    $namespace = substr($name, 1, $pos - 1);
    $name = substr($name, $pos + 1);
  }
  if (!isset($this->paths[$namespace])) {
    throw new Twig_Error_Loader(sprintf('There are no registered paths for namespace "%s".', $namespace));
  }
  foreach ($this->paths[$namespace] as $path) {
    if (is_file($path . '/' . $name)) {
      return $this->cache[$name] = $path . '/' . $name;
    }
  }
  throw new Twig_Error_Loader(sprintf('Unable to find template "%s" (looked into: %s).', $name, implode(', ', $this->paths[$namespace])));
}