mirror of
https://github.com/danog/PHP-Parser.git
synced 2025-01-20 12:46:47 +01:00
50 lines
1.3 KiB
PHP
50 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace PhpParser;
|
|
|
|
class TemplateLoader
|
|
{
|
|
protected $parser;
|
|
protected $baseDir;
|
|
protected $suffix;
|
|
|
|
/**
|
|
* Constructs a filesystem template loader.
|
|
*
|
|
* The templates are loaded from {baseDir}/{name}{suffix}.
|
|
*
|
|
* @param Parser $parser A PHP parser instance
|
|
* @param string $baseDir The base directory to load templates from
|
|
* @param string $suffix An optional suffix to append after the template name
|
|
*/
|
|
public function __construct(Parser $parser, $baseDir, $suffix = '') {
|
|
if (!is_dir($baseDir)) {
|
|
throw new \InvalidArgumentException(
|
|
sprintf('The specified base directory "%s" does not exist', $baseDir)
|
|
);
|
|
}
|
|
|
|
$this->parser = $parser;
|
|
$this->baseDir = $baseDir;
|
|
$this->suffix = $suffix;
|
|
}
|
|
|
|
/**
|
|
* Loads the template with the specified name.
|
|
*
|
|
* @param string $name The name of template
|
|
*
|
|
* @return Template The loaded template
|
|
*/
|
|
public function load($name) {
|
|
$file = $this->baseDir . '/' . $name . $this->suffix;
|
|
|
|
if (!is_file($file)) {
|
|
throw new \InvalidArgumentException(
|
|
sprintf('The file "%s" does not exist', $file)
|
|
);
|
|
}
|
|
|
|
return new Template($this->parser, file_get_contents($file));
|
|
}
|
|
} |