diff --git a/lib/Framework/Kernel.php b/lib/Framework/Kernel.php index 8368a67..a5557c5 100644 --- a/lib/Framework/Kernel.php +++ b/lib/Framework/Kernel.php @@ -20,6 +20,7 @@ class Kernel private string $configDir; private string $projectDir; private string $templateDir; + private string $cacheDir; private Router $router; /** @@ -70,6 +71,22 @@ class Kernel $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 */ diff --git a/lib/Framework/Twig.php b/lib/Framework/Twig.php index f7537a7..28d6984 100644 --- a/lib/Framework/Twig.php +++ b/lib/Framework/Twig.php @@ -6,6 +6,7 @@ namespace JeroenED\Framework; use Mehrkanal\EncoreTwigExtension\Extensions\EntryFilesTwigExtension; use Symfony\WebpackEncoreBundle\Asset\EntrypointLookup; +use Twig\Cache\FilesystemCache; use Twig\Environment; use Twig\Extra\Intl\IntlExtension; use Twig\Loader\FilesystemLoader; @@ -16,11 +17,13 @@ class Twig { private Environment $environment; private Kernel $kernel; + public function __construct(Kernel $kernel) { - $loader = new FilesystemLoader([$kernel->getTemplateDir()]); + $cache = new FilesystemCache($kernel->getCacheDir() . '/twig'); $this->environment = new Environment($loader); + $this->environment->setCache($cache); $this->kernel = $kernel; $this->addExtensions(); $this->addFunctions(); diff --git a/public/index.php b/public/index.php index 9fdda18..b73820a 100644 --- a/public/index.php +++ b/public/index.php @@ -10,6 +10,7 @@ $kernel = new Kernel(); $kernel->setProjectDir(getcwd()); $kernel->setConfigDir(getcwd() . '/config/'); $kernel->setTemplateDir(getcwd() . '/templates/'); +$kernel->setCacheDir(getcwd() . '/cache/'); $kernel->parseDotEnv($kernel->getProjectDir() . '/.env'); ini_set('date.timezone', $_ENV['TZ']);