Verzeichnisstruktur phpBB-3.2.0
- Veröffentlicht
- 06.01.2017
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 = array();
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 foreach ($loaders as $loader) {
030 $this->addLoader($loader);
031 }
032 }
033
034 /**
035 * Adds a loader instance.
036 *
037 * @param Twig_LoaderInterface $loader A Loader instance
038 */
039 public function addLoader(Twig_LoaderInterface $loader)
040 {
041 $this->loaders[] = $loader;
042 $this->hasSourceCache = array();
043 }
044
045 /**
046 * {@inheritdoc}
047 */
048 public function getSource($name)
049 {
050 $exceptions = array();
051 foreach ($this->loaders as $loader) {
052 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
053 continue;
054 }
055
056 try {
057 return $loader->getSource($name);
058 } catch (Twig_Error_Loader $e) {
059 $exceptions[] = $e->getMessage();
060 }
061 }
062
063 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
064 }
065
066 /**
067 * {@inheritdoc}
068 */
069 public function exists($name)
070 {
071 $name = (string) $name;
072
073 if (isset($this->hasSourceCache[$name])) {
074 return $this->hasSourceCache[$name];
075 }
076
077 foreach ($this->loaders as $loader) {
078 if ($loader instanceof Twig_ExistsLoaderInterface) {
079 if ($loader->exists($name)) {
080 return $this->hasSourceCache[$name] = true;
081 }
082
083 continue;
084 }
085
086 try {
087 $loader->getSource($name);
088
089 return $this->hasSourceCache[$name] = true;
090 } catch (Twig_Error_Loader $e) {
091 }
092 }
093
094 return $this->hasSourceCache[$name] = false;
095 }
096
097 /**
098 * {@inheritdoc}
099 */
100 public function getCacheKey($name)
101 {
102 $exceptions = array();
103 foreach ($this->loaders as $loader) {
104 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
105 continue;
106 }
107
108 try {
109 return $loader->getCacheKey($name);
110 } catch (Twig_Error_Loader $e) {
111 $exceptions[] = get_class($loader).': '.$e->getMessage();
112 }
113 }
114
115 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
116 }
117
118 /**
119 * {@inheritdoc}
120 */
121 public function isFresh($name, $time)
122 {
123 $exceptions = array();
124 foreach ($this->loaders as $loader) {
125 if ($loader instanceof Twig_ExistsLoaderInterface && !$loader->exists($name)) {
126 continue;
127 }
128
129 try {
130 return $loader->isFresh($name, $time);
131 } catch (Twig_Error_Loader $e) {
132 $exceptions[] = get_class($loader).': '.$e->getMessage();
133 }
134 }
135
136 throw new Twig_Error_Loader(sprintf('Template "%s" is not defined%s.', $name, $exceptions ? ' ('.implode(', ', $exceptions).')' : ''));
137 }
138 }
139