A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
6 years ago
|
<?php
|
||
|
|
||
|
/*
|
||
|
* This file is part of Mustache.php.
|
||
|
*
|
||
|
* (c) 2010-2017 Justin Hileman
|
||
|
*
|
||
|
* For the full copyright and license information, please view the LICENSE
|
||
|
* file that was distributed with this source code.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* A Mustache Template cascading loader implementation, which delegates to other
|
||
|
* Loader instances.
|
||
|
*/
|
||
|
class Mustache_Loader_CascadingLoader implements Mustache_Loader
|
||
|
{
|
||
|
private $loaders;
|
||
|
|
||
|
/**
|
||
|
* Construct a CascadingLoader with an array of loaders.
|
||
|
*
|
||
|
* $loader = new Mustache_Loader_CascadingLoader(array(
|
||
|
* new Mustache_Loader_InlineLoader(__FILE__, __COMPILER_HALT_OFFSET__),
|
||
|
* new Mustache_Loader_FilesystemLoader(__DIR__.'/templates')
|
||
|
* ));
|
||
|
*
|
||
|
* @param Mustache_Loader[] $loaders
|
||
|
*/
|
||
|
public function __construct(array $loaders = array())
|
||
|
{
|
||
|
$this->loaders = array();
|
||
|
foreach ($loaders as $loader) {
|
||
|
$this->addLoader($loader);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Add a Loader instance.
|
||
|
*
|
||
|
* @param Mustache_Loader $loader
|
||
|
*/
|
||
|
public function addLoader(Mustache_Loader $loader)
|
||
|
{
|
||
|
$this->loaders[] = $loader;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Load a Template by name.
|
||
|
*
|
||
|
* @throws Mustache_Exception_UnknownTemplateException If a template file is not found
|
||
|
*
|
||
|
* @param string $name
|
||
|
*
|
||
|
* @return string Mustache Template source
|
||
|
*/
|
||
|
public function load($name)
|
||
|
{
|
||
|
foreach ($this->loaders as $loader) {
|
||
|
try {
|
||
|
return $loader->load($name);
|
||
|
} catch (Mustache_Exception_UnknownTemplateException $e) {
|
||
|
// do nothing, check the next loader.
|
||
|
}
|
||
|
}
|
||
|
|
||
|
throw new Mustache_Exception_UnknownTemplateException($name);
|
||
|
}
|
||
|
}
|