Chain.php in Translation template extractor 7.3
File
vendor/Twig/Loader/Chain.php
View source
<?php
class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface {
private $hasSourceCache = array();
protected $loaders = array();
public function __construct(array $loaders = array()) {
foreach ($loaders as $loader) {
$this
->addLoader($loader);
}
}
public function addLoader(Twig_LoaderInterface $loader) {
$this->loaders[] = $loader;
$this->hasSourceCache = array();
}
public function getSource($name) {
$exceptions = array();
foreach ($this->loaders as $loader) {
if ($loader instanceof Twig_ExistsLoaderInterface && !$loader
->exists($name)) {
continue;
}
try {
return $loader
->getSource($name);
} catch (Twig_Error_Loader $e) {
$exceptions[] = $e
->getMessage();
}
}
throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' (' . implode(', ', $exceptions) . ')' : ''));
}
public function exists($name) {
$name = (string) $name;
if (isset($this->hasSourceCache[$name])) {
return $this->hasSourceCache[$name];
}
foreach ($this->loaders as $loader) {
if ($loader instanceof Twig_ExistsLoaderInterface) {
if ($loader
->exists($name)) {
return $this->hasSourceCache[$name] = true;
}
continue;
}
try {
$loader
->getSource($name);
return $this->hasSourceCache[$name] = true;
} catch (Twig_Error_Loader $e) {
}
}
return $this->hasSourceCache[$name] = false;
}
public function getCacheKey($name) {
$exceptions = array();
foreach ($this->loaders as $loader) {
if ($loader instanceof Twig_ExistsLoaderInterface && !$loader
->exists($name)) {
continue;
}
try {
return $loader
->getCacheKey($name);
} catch (Twig_Error_Loader $e) {
$exceptions[] = get_class($loader) . ': ' . $e
->getMessage();
}
}
throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' (' . implode(', ', $exceptions) . ')' : ''));
}
public function isFresh($name, $time) {
$exceptions = array();
foreach ($this->loaders as $loader) {
if ($loader instanceof Twig_ExistsLoaderInterface && !$loader
->exists($name)) {
continue;
}
try {
return $loader
->isFresh($name, $time);
} catch (Twig_Error_Loader $e) {
$exceptions[] = get_class($loader) . ': ' . $e
->getMessage();
}
}
throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' (' . implode(', ', $exceptions) . ')' : ''));
}
}