From 808681e87af262f075bbc128de20c3dd3ac7dba5 Mon Sep 17 00:00:00 2001 From: binaryDiv Date: Wed, 1 Jul 2020 00:48:22 +0200 Subject: [PATCH] add Settings class and Twig cache settings --- docker/.env.development | 4 ++++ docker/.env.testing | 4 ++++ docker/docker-compose.local.yml | 2 ++ docker/docker-compose.testing.yml | 2 ++ src/Dependencies.php | 19 +++++++++++++------ src/Settings.php | 14 ++++++++++++++ 6 files changed, 39 insertions(+), 6 deletions(-) create mode 100644 docker/.env.development create mode 100644 docker/.env.testing create mode 100644 src/Settings.php diff --git a/docker/.env.development b/docker/.env.development new file mode 100644 index 0000000..27fa1a8 --- /dev/null +++ b/docker/.env.development @@ -0,0 +1,4 @@ +# .env.development: Environment variables for local development + +# Disable Twig cache +TWIG_CACHE_DIR= diff --git a/docker/.env.testing b/docker/.env.testing new file mode 100644 index 0000000..110cb3a --- /dev/null +++ b/docker/.env.testing @@ -0,0 +1,4 @@ +# .env.testing: Environment variables for testing deployment + +# Disable Twig cache -- TODO enable cache +TWIG_CACHE_DIR= diff --git a/docker/docker-compose.local.yml b/docker/docker-compose.local.yml index fddd02c..eeb963e 100644 --- a/docker/docker-compose.local.yml +++ b/docker/docker-compose.local.yml @@ -8,5 +8,7 @@ services: restart: always ports: - 8080:80 + env_file: + - .env.development volumes: - ../:/var/www/ diff --git a/docker/docker-compose.testing.yml b/docker/docker-compose.testing.yml index 873e0ec..d0a2418 100644 --- a/docker/docker-compose.testing.yml +++ b/docker/docker-compose.testing.yml @@ -6,6 +6,8 @@ services: context: .. target: production restart: always + env_file: + - .env.testing networks: - traefik labels: diff --git a/src/Dependencies.php b/src/Dependencies.php index a6eecf9..675d22c 100644 --- a/src/Dependencies.php +++ b/src/Dependencies.php @@ -16,6 +16,19 @@ class Dependencies { $container = new Container(); + // App settings + $container->set(Settings::class, function (): Settings { + return new Settings(); + }); + + // Twig template engine + $container->set(self::TWIG, function (ContainerInterface $c) { + /** @var Settings $settings */ + $settings = $c->get(Settings::class); + + return Twig::create(self::TWIG_TEMPLATE_DIR, $settings->getTwigSettings()); + }); + // Controllers $container->set(HelloWorldController::class, function (ContainerInterface $c) { return new HelloWorldController( @@ -29,12 +42,6 @@ class Dependencies return new HelloWorld(); }); - $container->set(self::TWIG, function (ContainerInterface $c) { - // TODO cache - $twigSettings = []; - return Twig::create(self::TWIG_TEMPLATE_DIR, $twigSettings); - }); - return $container; } } diff --git a/src/Settings.php b/src/Settings.php new file mode 100644 index 0000000..0179399 --- /dev/null +++ b/src/Settings.php @@ -0,0 +1,14 @@ + getenv('TWIG_CACHE_DIR') ?? false, + ]; + } +}