1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-06-27 16:36:00 +00:00

Define DATABASE_URL env var in AppKernel

This commit is contained in:
Yassine Guedidi 2025-01-18 13:39:31 +01:00
parent bcafb8cbbc
commit e16a676989
2 changed files with 32 additions and 9 deletions

View file

@ -82,7 +82,7 @@ class AppKernel extends Kernel
if (file_exists($this->getProjectDir() . '/app/config/parameters.yml')) { if (file_exists($this->getProjectDir() . '/app/config/parameters.yml')) {
$loader->load(function (ContainerBuilder $container) { $loader->load(function (ContainerBuilder $container) {
$this->loadEnvVarsFromParameters($container); $this->loadEnvVarsFromParameters($container);
$this->processDatabaseParameters($container); $this->defineDatabaseUrlEnvVar($container);
}); });
} }
} }
@ -139,7 +139,7 @@ class AppKernel extends Kernel
$container->setParameter('env(' . $envVar . ')', (string) $container->getParameter($parameter)); $container->setParameter('env(' . $envVar . ')', (string) $container->getParameter($parameter));
} }
private function processDatabaseParameters(ContainerBuilder $container) private function defineDatabaseUrlEnvVar(ContainerBuilder $container)
{ {
switch ($container->getParameter('database_driver')) { switch ($container->getParameter('database_driver')) {
case 'pdo_mysql': case 'pdo_mysql':
@ -155,15 +155,39 @@ class AppKernel extends Kernel
throw new RuntimeException('Unsupported database driver: ' . $container->getParameter('database_driver')); throw new RuntimeException('Unsupported database driver: ' . $container->getParameter('database_driver'));
} }
$container->setParameter('database_scheme', $scheme); $user = $container->getParameter('database_user');
$password = $container->getParameter('database_password');
$host = $container->getParameter('database_host');
$port = $container->getParameter('database_port');
$name = $container->getParameter('database_name');
if ('sqlite' === $scheme) { if ('sqlite' === $scheme) {
$container->setParameter('database_name', $container->getParameter('database_path')); $name = $container->getParameter('database_path');
} }
$container->setParameter('database_user', (string) $container->getParameter('database_user')); $url = $scheme . '://' . $user . ':' . $password . '@' . $host;
$container->setParameter('database_password', (string) $container->getParameter('database_password'));
$container->setParameter('database_port', (string) $container->getParameter('database_port')); if ($port) {
$container->setParameter('database_socket', (string) $container->getParameter('database_socket')); $url .= ':' . $port;
}
$url .= '/' . $name;
$query = [];
if ($container->getParameter('database_socket')) {
$query['unix_socket'] = $container->getParameter('database_socket');
}
if ($container->getParameter('database_charset')) {
$query['charset'] = $container->getParameter('database_charset');
}
if ([] !== $query) {
$url .= '?' . http_build_query($query);
}
$_ENV['DATABASE_URL'] = $_SERVER['DATABASE_URL'] = $url;
$container->setParameter('env(DATABASE_URL)', $url);
} }
} }

View file

@ -5,7 +5,6 @@ imports:
parameters: parameters:
craue_config.cache_adapter.class: Craue\ConfigBundle\CacheAdapter\SymfonyCacheComponentAdapter craue_config.cache_adapter.class: Craue\ConfigBundle\CacheAdapter\SymfonyCacheComponentAdapter
env(DATABASE_URL): '%database_scheme%://%database_user%:%database_password%@%database_host%:%database_port%/%database_name%?unix_socket=%database_socket%&charset=%database_charset%'
framework: framework:
#esi: ~ #esi: ~