New feature: caching twig templates

This commit is contained in:
Jeroen De Meerleer 2021-08-02 13:28:14 +02:00
parent 79b8c58065
commit 621fadd7c2
Signed by: JeroenED
GPG Key ID: 28CCCB8F62BFADD6
3 changed files with 22 additions and 1 deletions

View File

@ -20,6 +20,7 @@ class Kernel
private string $configDir; private string $configDir;
private string $projectDir; private string $projectDir;
private string $templateDir; private string $templateDir;
private string $cacheDir;
private Router $router; private Router $router;
/** /**
@ -70,6 +71,22 @@ class Kernel
$this->templateDir = $templateDir; $this->templateDir = $templateDir;
} }
/**
* @return string
*/
public function getCacheDir(): string
{
return $this->cacheDir;
}
/**
* @param string $cacheDir
*/
public function setCacheDir(string $cacheDir): void
{
$this->cacheDir = $cacheDir;
}
/** /**
* @return Router * @return Router
*/ */

View File

@ -6,6 +6,7 @@ namespace JeroenED\Framework;
use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension; use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension;
use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup; use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup;
use Twig\Cache\FilesystemCache;
use Twig\Environment; use Twig\Environment;
use Twig\Extra\Intl\IntlExtension; use Twig\Extra\Intl\IntlExtension;
use Twig\Loader\FilesystemLoader; use Twig\Loader\FilesystemLoader;
@ -16,11 +17,13 @@ class Twig
{ {
private Environment $environment; private Environment $environment;
private Kernel $kernel; private Kernel $kernel;
public function __construct(Kernel $kernel) public function __construct(Kernel $kernel)
{ {
$loader = new FilesystemLoader([$kernel->getTemplateDir()]); $loader = new FilesystemLoader([$kernel->getTemplateDir()]);
$cache = new FilesystemCache($kernel->getCacheDir() . '/twig');
$this->environment = new Environment($loader); $this->environment = new Environment($loader);
$this->environment->setCache($cache);
$this->kernel = $kernel; $this->kernel = $kernel;
$this->addExtensions(); $this->addExtensions();
$this->addFunctions(); $this->addFunctions();

View File

@ -10,6 +10,7 @@ $kernel = new Kernel();
$kernel->setProjectDir(getcwd()); $kernel->setProjectDir(getcwd());
$kernel->setConfigDir(getcwd() . '/config/'); $kernel->setConfigDir(getcwd() . '/config/');
$kernel->setTemplateDir(getcwd() . '/templates/'); $kernel->setTemplateDir(getcwd() . '/templates/');
$kernel->setCacheDir(getcwd() . '/cache/');
$kernel->parseDotEnv($kernel->getProjectDir() . '/.env'); $kernel->parseDotEnv($kernel->getProjectDir() . '/.env');
ini_set('date.timezone', $_ENV['TZ']); ini_set('date.timezone', $_ENV['TZ']);