mirror of https://github.com/wallabag/wallabag.git
132 lines
5.2 KiB
PHP
132 lines
5.2 KiB
PHP
<?php
|
|
|
|
use Symfony\Component\Config\Loader\LoaderInterface;
|
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
|
use Symfony\Component\HttpKernel\Kernel;
|
|
use Wallabag\Import\ImportCompilerPass;
|
|
|
|
class AppKernel extends Kernel
|
|
{
|
|
public function registerBundles()
|
|
{
|
|
$bundles = [
|
|
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(),
|
|
new FOS\RestBundle\FOSRestBundle(),
|
|
new FOS\UserBundle\FOSUserBundle(),
|
|
new JMS\SerializerBundle\JMSSerializerBundle(),
|
|
new Nelmio\ApiDocBundle\NelmioApiDocBundle(),
|
|
new Nelmio\CorsBundle\NelmioCorsBundle(),
|
|
new Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle(),
|
|
new Spiriit\Bundle\FormFilterBundle\SpiriitFormFilterBundle(),
|
|
new FOS\OAuthServerBundle\FOSOAuthServerBundle(),
|
|
new Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle(),
|
|
new Scheb\TwoFactorBundle\SchebTwoFactorBundle(),
|
|
new KPhoen\RulerZBundle\KPhoenRulerZBundle(),
|
|
new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
|
|
new Craue\ConfigBundle\CraueConfigBundle(),
|
|
new BabDev\PagerfantaBundle\BabDevPagerfantaBundle(),
|
|
new FOS\JsRoutingBundle\FOSJsRoutingBundle(),
|
|
new OldSound\RabbitMqBundle\OldSoundRabbitMqBundle(),
|
|
new Http\HttplugBundle\HttplugBundle(),
|
|
new Sentry\SentryBundle\SentryBundle(),
|
|
new Twig\Extra\TwigExtraBundle\TwigExtraBundle(),
|
|
];
|
|
|
|
if (in_array($this->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'));
|
|
}
|
|
}
|