gmarche/src/Framework/Renderer/TwigRenderer.php

57 lines
1.3 KiB
PHP

<?php
namespace Framework\Renderer;
class TwigRenderer implements RendererInterface
{
private $twig;
public function __construct(\Twig_Environment $twig)
{
$this->twig = $twig;
}
/**
* Permet de rajouter un chamin pour charger les vues
* @param string $namespace
* @param null|string $path
*/
public function addPath(string $namespace, ?string $path = null): void
{
$this->twig->getLoader()->addPath($path, $namespace);
}
/**
* Permet de rendre une vue
* Le chemin peut être précisé avec des namespace rajoutés via addPath()
* $this->render('@blog/view');
* $this->render('view');
* @param string $view
* @param array $params
* @return string
*/
public function render(string $view, array $params = []): string
{
return $this->twig->render($view . '.twig', $params);
}
/**
* Permet de rajouter des variables globales à toutes les vues
*
* @param string $key
* @param mixed $value
*/
public function addGlobal(string $key, $value): void
{
$this->twig->addGlobal($key, $value);
}
/**
* @return \Twig_Environment
*/
public function getTwig(): \Twig_Environment
{
return $this->twig;
}
}