Skip to content

Commit 281e327

Browse files
committed
Spread priorization.
1 parent ff9c3e7 commit 281e327

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

DependencyInjection/Compiler/AddSpreadCompilerPass.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,20 @@ class AddSpreadCompilerPass implements CompilerPassInterface
1212
*/
1313
public function process(ContainerBuilder $container)
1414
{
15-
$alias = $container->getAlias('spy_timeline.spread.deployer');
16-
$spreadDeployer = $container->getDefinition((string) $alias);
15+
$alias = $container->getAlias('spy_timeline.spread.deployer');
16+
$spreadDeployer = $container->getDefinition((string) $alias);
17+
$spreadByPriority = [];
1718

18-
foreach ($container->findTaggedServiceIds('spy_timeline.spread') as $id => $tags) {
19-
$spreadDeployer->addMethodCall('addSpread', array($container->getDefinition($id)));
19+
foreach ($container->findTaggedServiceIds('spy_timeline.spread') as $id => $options) {
20+
$priority = array_key_exists('priority', $options[0]) ? $options[0]['priority'] : 0;
21+
22+
$spreadByPriority[$priority][] = $container->getDefinition($id);
23+
}
24+
25+
krsort($spreadByPriority);
26+
27+
foreach ($spreadByPriority as $spreads) {
28+
$spreadDeployer->addMethodCall('addSpread', $spreads);
2029
}
2130
}
2231
}

0 commit comments

Comments
 (0)