public function build(ContainerBuilder $container)
{
parent::build($container);
$container->addCompilerPass(new FieldTypeCollectionPass(), PassConfig::TYPE_OPTIMIZE);
$container->addCompilerPass(new FieldTypeNameableCollectionPass(), PassConfig::TYPE_OPTIMIZE);
$container->addCompilerPass(new FieldTypeParameterProviderRegistryPass());
$container->addCompilerPass(new ChainRoutingPass());
$container->addCompilerPass(new ChainConfigResolverPass());
$container->addCompilerPass(new RegisterLimitationTypePass());
$container->addCompilerPass(new RegisterStorageEnginePass());
$container->addCompilerPass(new RegisterSearchEnginePass());
$container->addCompilerPass(new RegisterSearchEngineIndexerPass());
$container->addCompilerPass(new LegacyStorageEnginePass());
$container->addCompilerPass(new LocalePass());
$container->addCompilerPass(new ContentViewPass());
$container->addCompilerPass(new LocationViewPass());
$container->addCompilerPass(new BlockViewPass());
$container->addCompilerPass(new SignalSlotPass());
$container->addCompilerPass(new IdentityDefinerPass());
$container->addCompilerPass(new SecurityPass());
$container->addCompilerPass(new RichTextHtml5ConverterPass());
$container->addCompilerPass(new FragmentPass());
$container->addCompilerPass(new StorageConnectionPass());
$container->addCompilerPass(new ImaginePass());
$container->addCompilerPass(new HttpCachePass());
$container->addCompilerPass(new ComplexSettingsPass(new ComplexSettingParser()));
$container->addCompilerPass(new ConfigResolverParameterPass(new DynamicSettingParser()));
$container->addCompilerPass(new AsseticPass());
$container->addCompilerPass(new RegisterListenersPass('ezpublish.http_cache.event_dispatcher', 'ezpublish.http_cache.event_listener', 'ezpublish.http_cache.event_subscriber'), PassConfig::TYPE_BEFORE_REMOVING);
$container->addCompilerPass(new BinaryContentDownloadPass());
$container->addCompilerPass(new ViewProvidersPass());
// Storage passes
$container->addCompilerPass(new ExternalStorageRegistryPass());
// Legacy Storage passes
$container->addCompilerPass(new FieldValueConverterRegistryPass());
$container->addCompilerPass(new RoleLimitationConverterPass());
$container->addCompilerPass(new QueryTypePass());
$securityExtension = $container->getExtension('security');
$securityExtension->addSecurityListenerFactory(new HttpBasicFactory());
}