*/ class SecurityEncoderFactoryPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { if ($container->hasAlias('security.encoder_factory')) { // security.encoder_factory is an alias. // Register a private alias for this service to inject it as the parent $container->setAlias('stof_advanced_encoder.encoder_factory.parent', new Alias((string) $container->getAlias('security.encoder_factory'), false)); } else { // security.encoder_factory is a definition. // Register it again as a private service to inject it as the parent $definition = $container->getDefinition('security.encoder_factory'); $definition->setPublic(false); $container->setDefinition('stof_advanced_encoder.encoder_factory.parent', $definition); } $container->setAlias('security.encoder_factory', 'stof_advanced_encoder.encoder_factory'); } }