RemoveAbstractDefinitionsPass.php 824 B

123456789101112131415161718192021222324252627282930
  1. <?php
  2. namespace Symfony\Component\DependencyInjection\Compiler;
  3. use Symfony\Component\DependencyInjection\ContainerBuilder;
  4. /**
  5. * Removes abstract Definitions
  6. *
  7. */
  8. class RemoveAbstractDefinitionsPass implements CompilerPassInterface
  9. {
  10. /**
  11. * Removes abstract definitions from the ContainerBuilder
  12. *
  13. * @param ContainerBuilder $container
  14. */
  15. public function process(ContainerBuilder $container)
  16. {
  17. $compiler = $container->getCompiler();
  18. $formatter = $compiler->getLoggingFormatter();
  19. foreach ($container->getDefinitions() as $id => $definition) {
  20. if ($definition->isAbstract()) {
  21. $container->remove($id);
  22. $compiler->addLogMessage($formatter->formatRemoveDefinition($this, $id, 'abstract'));
  23. }
  24. }
  25. }
  26. }