mirror of
https://github.com/FriendsOfSymfony/FOSAdvancedEncoderBundle.git
synced 2026-03-25 17:22:07 +01:00
33 lines
1.4 KiB
PHP
33 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Stof\AdvancedEncoderBundle\DependencyInjection\Compiler;
|
|
|
|
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
|
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
|
use Symfony\Component\DependencyInjection\Alias;
|
|
|
|
/**
|
|
* Overwrites the existing encoder factory and injects the old one in the StofAdvancedEncoderBundle implementation
|
|
*
|
|
* @author Christophe Coevoet <stof@notk.org>
|
|
*/
|
|
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');
|
|
}
|
|
}
|