for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Zenstruck\BackupBundle\DependencyInjection\Compiler;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Reference;
/**
* @author Kevin Bond <[email protected]>
*/
abstract class RegisterCompilerPass implements CompilerPassInterface
{
* {@inheritdoc}
final public function process(ContainerBuilder $container)
$definitionName = $this->getDefinitionName();
if (false === $container->hasDefinition($definitionName)) {
return;
}
$definition = $container->getDefinition($definitionName);
$taggedServices = $container->findTaggedServiceIds($this->getTagName());
foreach (array_keys($taggedServices) as $id) {
$definition->addMethodCall($this->getMethodName(), array(new Reference($id)));
* @return string
abstract protected function getDefinitionName();
abstract protected function getTagName();
abstract protected function getMethodName();