// must be registered before removing private services as some might be listeners/subscribers
// but as late as possible to get resolved parameters
$container->
addCompilerPass($registerListenersPass, PassConfig::TYPE_BEFORE_REMOVING
);
$this->
addCompilerPassIfExists($container, AddConstraintValidatorsPass::
class);
$container->
addCompilerPass(new AddAnnotationsCachedReaderPass(), PassConfig::TYPE_AFTER_REMOVING, -255
);
$this->
addCompilerPassIfExists($container, AddValidatorInitializersPass::
class);
$this->
addCompilerPassIfExists($container, AddConsoleCommandPass::
class, PassConfig::TYPE_BEFORE_REMOVING
);
// must be registered as late as possible to get access to all Twig paths registered in
// twig.template_iterator definition
$this->
addCompilerPassIfExists($container, TranslatorPass::
class, PassConfig::TYPE_BEFORE_OPTIMIZATION, -32
);
$this->
addCompilerPassIfExists($container, TranslatorPathsPass::
class, PassConfig::TYPE_AFTER_REMOVING
);
$container->
addCompilerPass(new LoggingTranslatorPass());
$container->
addCompilerPass(new AddExpressionLanguageProvidersPass(false
));
$this->
addCompilerPassIfExists($container, TranslationExtractorPass::
class);
$this->
addCompilerPassIfExists($container, TranslationDumperPass::
class);
$container->
addCompilerPass(new FragmentRendererPass());
$this->
addCompilerPassIfExists($container, SerializerPass::
class);
$this->
addCompilerPassIfExists($container, PropertyInfoPass::
class);
$container->
addCompilerPass(new ControllerArgumentValueResolverPass());
$container->
addCompilerPass(new CachePoolPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION, 32
);
$container->
addCompilerPass(new CachePoolClearerPass(), PassConfig::TYPE_AFTER_REMOVING
);
$container->
addCompilerPass(new CachePoolPrunerPass(), PassConfig::TYPE_AFTER_REMOVING
);
$this->
addCompilerPassIfExists($container, FormPass::
class);