123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Bundle\FrameworkBundle;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddCacheClearerPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddCacheWarmerPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConsoleCommandPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConstraintValidatorsPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddExpressionLanguageProvidersPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddValidatorInitializersPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\CompilerDebugDumpPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ConfigCachePass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ContainerBuilderDebugDumpPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\DataCollectorTranslatorPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\FormPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\LoggingTranslatorPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ProfilerPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\PropertyInfoPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RoutingResolverPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SerializerPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TemplatingPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslationDumperPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslationExtractorPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TranslatorPass;
- use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass;
- use Symfony\Component\Debug\ErrorHandler;
- use Symfony\Component\DependencyInjection\Compiler\PassConfig;
- use Symfony\Component\DependencyInjection\ContainerBuilder;
- use Symfony\Component\DependencyInjection\Scope;
- use Symfony\Component\EventDispatcher\DependencyInjection\RegisterListenersPass;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpKernel\Bundle\Bundle;
- use Symfony\Component\HttpKernel\DependencyInjection\FragmentRendererPass;
- /**
- * Bundle.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
- class FrameworkBundle extends Bundle
- {
- public function boot()
- {
- ErrorHandler::register(null, false)->throwAt($this->container->getParameter('debug.error_handler.throw_at'), true);
- if ($trustedProxies = $this->container->getParameter('kernel.trusted_proxies')) {
- Request::setTrustedProxies($trustedProxies);
- }
- if ($this->container->getParameter('kernel.http_method_override')) {
- Request::enableHttpMethodParameterOverride();
- }
- if ($trustedHosts = $this->container->getParameter('kernel.trusted_hosts')) {
- Request::setTrustedHosts($trustedHosts);
- }
- }
- public function build(ContainerBuilder $container)
- {
- parent::build($container);
- // we need to add the request scope as early as possible so that
- // the compilation can find scope widening issues
- $container->addScope(new Scope('request'));
- $container->addCompilerPass(new RoutingResolverPass());
- $container->addCompilerPass(new ProfilerPass());
- // must be registered before removing private services as some might be listeners/subscribers
- // but as late as possible to get resolved parameters
- $container->addCompilerPass(new RegisterListenersPass(), PassConfig::TYPE_BEFORE_REMOVING);
- $container->addCompilerPass(new TemplatingPass());
- $container->addCompilerPass(new AddConstraintValidatorsPass(), PassConfig::TYPE_BEFORE_REMOVING);
- $container->addCompilerPass(new AddValidatorInitializersPass());
- $container->addCompilerPass(new AddConsoleCommandPass());
- $container->addCompilerPass(new FormPass());
- $container->addCompilerPass(new TranslatorPass());
- $container->addCompilerPass(new LoggingTranslatorPass());
- $container->addCompilerPass(new AddCacheWarmerPass());
- $container->addCompilerPass(new AddCacheClearerPass());
- $container->addCompilerPass(new AddExpressionLanguageProvidersPass());
- $container->addCompilerPass(new TranslationExtractorPass());
- $container->addCompilerPass(new TranslationDumperPass());
- $container->addCompilerPass(new FragmentRendererPass(), PassConfig::TYPE_AFTER_REMOVING);
- $container->addCompilerPass(new SerializerPass());
- $container->addCompilerPass(new PropertyInfoPass());
- $container->addCompilerPass(new DataCollectorTranslatorPass());
- if ($container->getParameter('kernel.debug')) {
- $container->addCompilerPass(new UnusedTagsPass(), PassConfig::TYPE_AFTER_REMOVING);
- $container->addCompilerPass(new ContainerBuilderDebugDumpPass(), PassConfig::TYPE_AFTER_REMOVING);
- $container->addCompilerPass(new CompilerDebugDumpPass(), PassConfig::TYPE_AFTER_REMOVING);
- $container->addCompilerPass(new ConfigCachePass());
- }
- }
- }
|