Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
13:5fb285c0d0e3 | 14:1fec387a4317 |
---|---|
30 $this->repeatedPass = $repeatedPass; | 30 $this->repeatedPass = $repeatedPass; |
31 } | 31 } |
32 | 32 |
33 /** | 33 /** |
34 * Processes the ContainerBuilder to remove unused definitions. | 34 * Processes the ContainerBuilder to remove unused definitions. |
35 * | |
36 * @param ContainerBuilder $container | |
37 */ | 35 */ |
38 public function process(ContainerBuilder $container) | 36 public function process(ContainerBuilder $container) |
39 { | 37 { |
40 $compiler = $container->getCompiler(); | 38 $graph = $container->getCompiler()->getServiceReferenceGraph(); |
41 $formatter = $compiler->getLoggingFormatter(); | |
42 $graph = $compiler->getServiceReferenceGraph(); | |
43 | 39 |
44 $hasChanged = false; | 40 $hasChanged = false; |
45 foreach ($container->getDefinitions() as $id => $definition) { | 41 foreach ($container->getDefinitions() as $id => $definition) { |
46 if ($definition->isPublic()) { | 42 if ($definition->isPublic() || $definition->isPrivate()) { |
47 continue; | 43 continue; |
48 } | 44 } |
49 | 45 |
50 if ($graph->hasNode($id)) { | 46 if ($graph->hasNode($id)) { |
51 $edges = $graph->getNode($id)->getInEdges(); | 47 $edges = $graph->getNode($id)->getInEdges(); |
52 $referencingAliases = array(); | 48 $referencingAliases = array(); |
53 $sourceIds = array(); | 49 $sourceIds = array(); |
54 foreach ($edges as $edge) { | 50 foreach ($edges as $edge) { |
51 if ($edge->isWeak()) { | |
52 continue; | |
53 } | |
55 $node = $edge->getSourceNode(); | 54 $node = $edge->getSourceNode(); |
56 $sourceIds[] = $node->getId(); | 55 $sourceIds[] = $node->getId(); |
57 | 56 |
58 if ($node->isAlias()) { | 57 if ($node->isAlias()) { |
59 $referencingAliases[] = $node->getValue(); | 58 $referencingAliases[] = $node->getValue(); |
65 $isReferenced = false; | 64 $isReferenced = false; |
66 } | 65 } |
67 | 66 |
68 if (1 === count($referencingAliases) && false === $isReferenced) { | 67 if (1 === count($referencingAliases) && false === $isReferenced) { |
69 $container->setDefinition((string) reset($referencingAliases), $definition); | 68 $container->setDefinition((string) reset($referencingAliases), $definition); |
70 $definition->setPublic(true); | 69 $definition->setPublic(!$definition->isPrivate()); |
70 $definition->setPrivate(reset($referencingAliases)->isPrivate()); | |
71 $container->removeDefinition($id); | 71 $container->removeDefinition($id); |
72 $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'replaces alias '.reset($referencingAliases))); | 72 $container->log($this, sprintf('Removed service "%s"; reason: replaces alias %s.', $id, reset($referencingAliases))); |
73 } elseif (0 === count($referencingAliases) && false === $isReferenced) { | 73 } elseif (0 === count($referencingAliases) && false === $isReferenced) { |
74 $container->removeDefinition($id); | 74 $container->removeDefinition($id); |
75 $container->resolveEnvPlaceholders(serialize($definition)); | 75 $container->resolveEnvPlaceholders(serialize($definition)); |
76 $compiler->addLogMessage($formatter->formatRemoveService($this, $id, 'unused')); | 76 $container->log($this, sprintf('Removed service "%s"; reason: unused.', $id)); |
77 $hasChanged = true; | 77 $hasChanged = true; |
78 } | 78 } |
79 } | 79 } |
80 | 80 |
81 if ($hasChanged) { | 81 if ($hasChanged) { |