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