From 9420e3c5d9f2f22023ed72e584f22f99d2a709c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr> Date: Tue, 15 Mar 2022 17:11:49 +0100 Subject: [PATCH] Fixed bug: DATABASE_DEV_MODE=0 --- server/.gitignore | 1 + server/app/dependencies.php | 18 ++++++++++----- server/cli-config.php | 46 ++++++++++++++++++------------------- 3 files changed, 35 insertions(+), 30 deletions(-) diff --git a/server/.gitignore b/server/.gitignore index 09c667e0..4a918f4a 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -3,6 +3,7 @@ nbproject/ .idea/ vendor/* phpunit-coverage/ +doctrine_cache/ coverage/ data/ build/* diff --git a/server/app/dependencies.php b/server/app/dependencies.php index 42d875cc..74401b8f 100644 --- a/server/app/dependencies.php +++ b/server/app/dependencies.php @@ -22,10 +22,17 @@ $container->set('em', function (ContainerInterface $c) { $settings = $c->get(SETTINGS)['database']; $devMode = boolval($settings['dev_mode']); $proxyDir = getcwd() . '/../doctrine-proxy'; - $cache = null; - if ($devMode == false) { - $cache = new \Doctrine\Common\Cache\ApcuCache(); + + if ($devMode) { + $cache = \Doctrine\Common\Cache\Psr6\DoctrineProvider::wrap( + new \Symfony\Component\Cache\Adapter\ArrayAdapter() + ); + } else { + $cache = \Doctrine\Common\Cache\Psr6\DoctrineProvider::wrap( + new \Symfony\Component\Cache\Adapter\FilesystemAdapter(directory: '/project/doctrine_cache') + ); } + $dc = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration( array('src/Entity'), $devMode, @@ -33,12 +40,11 @@ $container->set('em', function (ContainerInterface $c) { $cache ); $dc->setAutogenerateProxyClasses(false); - + if ($devMode) { $dc->setSQLLogger(new \Doctrine\DBAL\Logging\DebugStack()); - } else { - $dc->setQueryCacheImpl($cache); } + return \Doctrine\ORM\EntityManager::create($settings['connection_options'], $dc); }); diff --git a/server/cli-config.php b/server/cli-config.php index d0351e85..a31ab47c 100644 --- a/server/cli-config.php +++ b/server/cli-config.php @@ -1,30 +1,28 @@ <?php -// File needed by doctrine cli -require 'vendor/autoload.php'; -$settings = require './app/settings.php'; -$database = $settings['database']; -$devMode = boolval($database['dev_mode']); -$proxyDir = getcwd() . '/doctrine-proxy'; -$cache = null; -if ($devMode == false) { - $cache = new \Doctrine\Common\Cache\ApcuCache(); -} +/* + * This file is part of Anis Server. + * + * (c) Laboratoire d'Astrophysique de Marseille / CNRS + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ +declare(strict_types=1); -$c = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration( - array('src/Entity'), - $devMode, - $proxyDir, - $cache -); -$c->setAutoGenerateProxyClasses(false); +use DI\Container; +use Doctrine\ORM\Tools\Console\ConsoleRunner; -if ($devMode) { - $c->setSQLLogger(new \Doctrine\DBAL\Logging\DebugStack()); -} else { - $c->setQueryCacheImpl($cache); -} +// Autoloading for libraries +require __DIR__ . '/vendor/autoload.php'; -$em = \Doctrine\ORM\EntityManager::create($database['connection_options'], $c); +// Load app constants +require __DIR__ . '/app/constants.php'; -return \Doctrine\ORM\Tools\Console\ConsoleRunner::createHelperSet($em); +// Create Container using PHP-DI +$container = new Container(); + +// Setup dependencies +require __DIR__ . '/app/dependencies.php'; + +return ConsoleRunner::createHelperSet($container->get('em')); \ No newline at end of file -- GitLab