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); }); } protected function build(ContainerBuilder $container) { $container->addCompilerPass(new ImportCompilerPass()); } private function processDatabaseParameters(ContainerBuilder $container) { switch ($container->getParameter('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('database_driver')); } $container->setParameter('database_scheme', $scheme); if ('sqlite' === $scheme) { $container->setParameter('database_name', $container->getParameter('database_path')); } $container->setParameter('database_user', (string) $container->getParameter('database_user')); $container->setParameter('database_password', (string) $container->getParameter('database_password')); $container->setParameter('database_port', (string) $container->getParameter('database_port')); $container->setParameter('database_socket', (string) $container->getParameter('database_socket')); } }