2015-01-22 07:30:07 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
use Symfony\Component\Config\Loader\LoaderInterface;
|
2018-10-24 19:02:35 +00:00
|
|
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
2017-07-01 07:52:38 +00:00
|
|
|
use Symfony\Component\HttpKernel\Kernel;
|
2024-02-19 00:30:12 +00:00
|
|
|
use Wallabag\Import\ImportCompilerPass;
|
2015-01-22 07:30:07 +00:00
|
|
|
|
|
|
|
class AppKernel extends Kernel
|
|
|
|
{
|
|
|
|
public function registerBundles()
|
|
|
|
{
|
2016-01-14 17:15:07 +00:00
|
|
|
$bundles = [
|
2015-01-22 07:30:07 +00:00
|
|
|
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
|
|
|
|
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
|
|
|
|
new Symfony\Bundle\TwigBundle\TwigBundle(),
|
|
|
|
new Symfony\Bundle\MonologBundle\MonologBundle(),
|
|
|
|
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
|
|
|
|
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
|
2015-01-28 16:09:27 +00:00
|
|
|
new FOS\RestBundle\FOSRestBundle(),
|
2015-08-18 09:08:45 +00:00
|
|
|
new FOS\UserBundle\FOSUserBundle(),
|
2015-01-28 16:09:27 +00:00
|
|
|
new JMS\SerializerBundle\JMSSerializerBundle(),
|
|
|
|
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
|
2015-02-27 20:26:43 +00:00
|
|
|
new Nelmio\CorsBundle\NelmioCorsBundle(),
|
2015-03-29 08:53:10 +00:00
|
|
|
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
|
2024-01-19 20:43:33 +00:00
|
|
|
new Spiriit\Bundle\FormFilterBundle\SpiriitFormFilterBundle(),
|
2015-09-29 12:31:52 +00:00
|
|
|
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
|
2015-10-14 19:30:25 +00:00
|
|
|
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
2015-10-13 20:43:15 +00:00
|
|
|
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
|
2015-10-11 14:54:21 +00:00
|
|
|
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
2016-01-08 15:27:29 +00:00
|
|
|
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
2016-01-21 07:53:09 +00:00
|
|
|
new Craue\ConfigBundle\CraueConfigBundle(),
|
2020-06-15 06:25:59 +00:00
|
|
|
new BabDev\PagerfantaBundle\BabDevPagerfantaBundle(),
|
2016-10-24 09:20:11 +00:00
|
|
|
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
|
2018-10-04 12:07:20 +00:00
|
|
|
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
|
2017-10-24 20:55:40 +00:00
|
|
|
new Http\HttplugBundle\HttplugBundle(),
|
2019-06-05 11:15:15 +00:00
|
|
|
new Sentry\SentryBundle\SentryBundle(),
|
2022-12-15 11:32:16 +00:00
|
|
|
new Twig\Extra\TwigExtraBundle\TwigExtraBundle(),
|
2016-01-14 17:15:07 +00:00
|
|
|
];
|
2015-01-22 07:30:07 +00:00
|
|
|
|
2016-01-14 17:15:07 +00:00
|
|
|
if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
|
2015-01-22 07:30:07 +00:00
|
|
|
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
|
|
|
|
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
|
2015-02-08 22:05:51 +00:00
|
|
|
$bundles[] = new Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle();
|
2017-05-15 18:47:59 +00:00
|
|
|
|
|
|
|
if ('test' === $this->getEnvironment()) {
|
|
|
|
$bundles[] = new DAMA\DoctrineTestBundle\DAMADoctrineTestBundle();
|
|
|
|
}
|
2018-10-24 19:02:35 +00:00
|
|
|
|
|
|
|
if ('dev' === $this->getEnvironment()) {
|
2020-05-25 04:16:16 +00:00
|
|
|
$bundles[] = new Symfony\Bundle\MakerBundle\MakerBundle();
|
2018-10-24 19:02:35 +00:00
|
|
|
$bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
|
|
|
|
}
|
2015-01-22 07:30:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
return $bundles;
|
|
|
|
}
|
|
|
|
|
2016-01-14 17:15:07 +00:00
|
|
|
public function getCacheDir()
|
|
|
|
{
|
2017-07-01 07:52:38 +00:00
|
|
|
return dirname(__DIR__) . '/var/cache/' . $this->getEnvironment();
|
2016-01-14 17:15:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public function getLogDir()
|
|
|
|
{
|
2017-07-01 07:52:38 +00:00
|
|
|
return dirname(__DIR__) . '/var/logs';
|
2016-01-14 17:15:07 +00:00
|
|
|
}
|
|
|
|
|
2015-01-22 07:30:07 +00:00
|
|
|
public function registerContainerConfiguration(LoaderInterface $loader)
|
|
|
|
{
|
2023-08-07 21:22:35 +00:00
|
|
|
$loader->load($this->getProjectDir() . '/app/config/config_' . $this->getEnvironment() . '.yml');
|
2018-10-24 19:02:35 +00:00
|
|
|
|
2017-03-31 18:21:41 +00:00
|
|
|
$loader->load(function ($container) {
|
2017-07-01 07:52:38 +00:00
|
|
|
if ($container->getParameter('use_webpack_dev_server')) {
|
|
|
|
$container->loadFromExtension('framework', [
|
2024-03-19 08:28:19 +00:00
|
|
|
'assets' => [
|
|
|
|
'base_url' => 'http://localhost:8080/',
|
|
|
|
],
|
|
|
|
]);
|
2017-12-20 21:18:26 +00:00
|
|
|
} else {
|
2017-12-20 20:53:11 +00:00
|
|
|
$container->loadFromExtension('framework', [
|
|
|
|
'assets' => [
|
|
|
|
'base_url' => $container->getParameter('domain_name'),
|
2017-12-20 21:18:26 +00:00
|
|
|
],
|
2017-12-20 20:53:11 +00:00
|
|
|
]);
|
|
|
|
}
|
2017-03-31 18:21:41 +00:00
|
|
|
});
|
2018-10-24 19:02:35 +00:00
|
|
|
|
|
|
|
$loader->load(function (ContainerBuilder $container) {
|
|
|
|
// $container->setParameter('container.autowiring.strict_mode', true);
|
|
|
|
// $container->setParameter('container.dumper.inline_class_loader', true);
|
|
|
|
$container->addObjectResource($this);
|
|
|
|
});
|
2024-01-04 01:04:20 +00:00
|
|
|
|
|
|
|
$loader->load(function (ContainerBuilder $container) {
|
|
|
|
$this->processDatabaseParameters($container);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2024-02-18 23:53:59 +00:00
|
|
|
protected function build(ContainerBuilder $container)
|
|
|
|
{
|
|
|
|
$container->addCompilerPass(new ImportCompilerPass());
|
|
|
|
}
|
|
|
|
|
2024-01-04 23:41:13 +00:00
|
|
|
private function processDatabaseParameters(ContainerBuilder $container)
|
2024-01-04 01:04:20 +00:00
|
|
|
{
|
2024-01-04 23:41:13 +00:00
|
|
|
switch ($container->getParameter('database_driver')) {
|
2024-01-04 01:04:20 +00:00
|
|
|
case 'pdo_mysql':
|
|
|
|
$scheme = 'mysql';
|
|
|
|
break;
|
|
|
|
case 'pdo_pgsql':
|
|
|
|
$scheme = 'pgsql';
|
|
|
|
break;
|
|
|
|
case 'pdo_sqlite':
|
|
|
|
$scheme = 'sqlite';
|
|
|
|
break;
|
|
|
|
default:
|
2024-01-01 18:11:01 +00:00
|
|
|
throw new RuntimeException('Unsupported database driver: ' . $container->getParameter('database_driver'));
|
2024-01-04 01:04:20 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 23:41:13 +00:00
|
|
|
$container->setParameter('database_scheme', $scheme);
|
2024-01-04 01:04:20 +00:00
|
|
|
|
|
|
|
if ('sqlite' === $scheme) {
|
2024-01-04 23:41:13 +00:00
|
|
|
$container->setParameter('database_name', $container->getParameter('database_path'));
|
2024-01-04 01:04:20 +00:00
|
|
|
}
|
|
|
|
|
2024-01-04 23:41:13 +00:00
|
|
|
$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'));
|
2015-01-22 07:30:07 +00:00
|
|
|
}
|
|
|
|
}
|