getEnvironment(), ['dev', 'test'], true)) { $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle(); $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle(); if ('test' === $this->getEnvironment()) { $bundles[] = new DAMA\DoctrineTestBundle\DAMADoctrineTestBundle(); } if ('dev' === $this->getEnvironment()) { $bundles[] = new Symfony\Bundle\MakerBundle\MakerBundle(); $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle(); } } return $bundles; } public function getCacheDir() { return dirname(__DIR__) . '/var/cache/' . $this->getEnvironment(); } public function getLogDir() { return dirname(__DIR__) . '/var/logs'; } public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load($this->getProjectDir() . '/app/config/config_' . $this->getEnvironment() . '.yml'); $loader->load(function ($container) { if ($container->getParameter('use_webpack_dev_server')) { $container->loadFromExtension('framework', [ 'assets' => [ 'base_url' => 'http://localhost:8080/', ], ]); } else { $container->loadFromExtension('framework', [ 'assets' => [ 'base_url' => $container->getParameter('domain_name'), ], ]); } }); $loader->load(function (ContainerBuilder $container) { // $container->setParameter('container.autowiring.strict_mode', true); // $container->setParameter('container.dumper.inline_class_loader', true); $container->addObjectResource($this); }); $loader->load(function (ContainerBuilder $container) { $this->processDatabaseParameters($container); if ('test' === $container->getParameter('kernel.environment')) { $this->processDatabaseParameters($container, true); } }); } private function processDatabaseParameters(ContainerBuilder $container, bool $isTest = false) { $prefix = ''; if ($isTest) { $prefix = 'test_'; } switch ($container->getParameter($prefix . 'database_driver')) { case 'pdo_mysql': $scheme = 'mysql'; break; case 'pdo_pgsql': $scheme = 'pgsql'; break; case 'pdo_sqlite': $scheme = 'sqlite'; break; default: throw new \RuntimeException('Unsupported database driver: ' . $container->getParameter($prefix . 'database_driver')); } $container->setParameter($prefix . 'database_scheme', $scheme); if ('sqlite' === $scheme) { $container->setParameter($prefix . 'database_name', $container->getParameter($prefix . 'database_path')); } $container->setParameter($prefix . 'database_user', (string) $container->getParameter($prefix . 'database_user')); $container->setParameter($prefix . 'database_password', (string) $container->getParameter($prefix . 'database_password')); $container->setParameter($prefix . 'database_port', (string) $container->getParameter($prefix . 'database_port')); $container->setParameter($prefix . 'database_socket', (string) $container->getParameter($prefix . 'database_socket')); } }