Тип файла рендера Twig - PullRequest
       39

Тип файла рендера Twig

0 голосов
/ 01 февраля 2019

Мне нужно загрузить оба типа файлов (HTML / PHP), так как в HTML и PHP есть несколько файлов.

    /**
     * Render the provided view.
     *
     * @param string $view The view to render.
     * @param array $args  Array of arguments to pass to the view.
     */
    public function render($view, $args = []) {
        $this->view = $view;
        $this->args = $args;

        echo $this->twig->render("{$this->view}.html", $this->args);
    }

Мне нужно, чтобы иметь возможность загружать файлы HTML и PHP, я простоне могу понять это.

Спасибо, Джейк.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Необработанный вызов file_exists, предложенный ceejayoz, не будет работать, если вы используете шаблоны в путях с ветками в пространстве имен.Тогда это будет лучше, так как сначала разрешаются пути через загрузчик файлов:

$view = '';
$loader = $this->twig->getLoader();
if($loader->exists('{$this->view}.html')) {
  $view = '{$this->view}.html';
} else if($loader->exists('{$this->view}.php')) {
  $view = '{$this->view}.php';
} else {
  throw new \RuntimeException('View not found');
}
echo $this->twig->render($view, $args);
0 голосов
/ 01 февраля 2019

Что-то вроде этого должно работать:

if(file_exists("{$this->view}.html")) {
    echo $this->twig->render("{$this->view}.html", $this->args);
} elseif(file_exists("{$this->view}.php")) {
    echo $this->twig->render("{$this->view}.php", $this->args);
} else {
    throw new Exception('uh oh');
}

Тем не менее, вы можете рассмотреть стандартизацию расширения .twig для шаблонов .

...