Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Chain.php
001 <?php
002
003 /*
004 * This file is part of Twig.
005 *
006 * (c) 2011 Fabien Potencier
007 *
008 * For the full copyright and license information, please view the LICENSE
009 * file that was distributed with this source code.
010 */
011
012 /**
013 * Loads templates from other loaders.
014 *
015 * @author Fabien Potencier <fabien@symfony.com>
016 */
017 class Twig_Loader_Chain implements Twig_LoaderInterface, Twig_ExistsLoaderInterface
018 {
019 private $hasSourceCache = array();
020 protected $loaders;
021
022 /**
023 * Constructor.
024 *
025 * @param Twig_LoaderInterface[] $loaders An array of loader instances
026 */
027 public function __construct(array $loaders = array())
028 {
029 $this->loaders = array();
030 foreach ($loaders as $loader) {
031 $this->addLoader($loader);
032 }
033 }
034
035 /**
036 * Adds a loader instance.
037 *
038 * @param Twig_LoaderInterface $loader A Loader instance
039 */
040 public function addLoader(Twig_LoaderInterface $loader)
041 {
042 $this->loaders[] = $loader;
043 $this->hasSourceCache = array();
044 }
045
046 /**
047 * {@inheritdoc}
048 */
049 public function getSource($name)
050 {
051 $exceptions = array();
052 foreach ($this->loaders as $loader) {
053 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
054 continue;
055 }
056
057 try {
058 return $loader->getSource($name);
059 } catch (Twig_Error_Loader $e) {
060 $exceptions[] = $e->getMessage();
061 }
062 }
063
064 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(', ', $exceptions)));
065 }
066
067 /**
068 * {@inheritdoc}
069 */
070 public function exists($name)
071 {
072 $name = (string) $name;
073
074 if (isset($this->hasSourceCache[$name])) {
075 return $this->hasSourceCache[$name];
076 }
077
078 foreach ($this->loaders as $loader) {
079 if ($loader instanceof Twig_ExistsLoaderInterface) {
080 if ($loader->exists($name)) {
081 return $this->hasSourceCache[$name] = true;
082 }
083
084 continue;
085 }
086
087 try {
088 $loader->getSource($name);
089
090 return $this->hasSourceCache[$name] = true;
091 } catch (Twig_Error_Loader $e) {
092 }
093 }
094
095 return $this->hasSourceCache[$name] = false;
096 }
097
098 /**
099 * {@inheritdoc}
100 */
101 public function getCacheKey($name)
102 {
103 $exceptions = array();
104 foreach ($this->loaders as $loader) {
105 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
106 continue;
107 }
108
109 try {
110 return $loader->getCacheKey($name);
111 } catch (Twig_Error_Loader $e) {
112 $exceptions[] = get_class($loader).': '.$e->getMessage();
113 }
114 }
115
116 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(' ', $exceptions)));
117 }
118
119 /**
120 * {@inheritdoc}
121 */
122 public function isFresh($name, $time)
123 {
124 $exceptions = array();
125 foreach ($this->loaders as $loader) {
126 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
127 continue;
128 }
129
130 try {
131 return $loader->isFresh($name, $time);
132 } catch (Twig_Error_Loader $e) {
133 $exceptions[] = get_class($loader).': '.$e->getMessage();
134 }
135 }
136
137 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined (%s).', $name, implode(' ', $exceptions)));
138 }
139 }
140