Licitator 1.0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
907 B

5 years ago
  1. <?php
  2. namespace Zitec\RuleEngineBundle\DependencyInjection\Compiler;
  3. use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
  4. use Symfony\Component\DependencyInjection\ContainerBuilder;
  5. use Symfony\Component\DependencyInjection\Reference;
  6. /**
  7. * Class ExpressionProviderPass
  8. */
  9. class ExpressionProviderPass implements CompilerPassInterface
  10. {
  11. /**
  12. * @param ContainerBuilder $container
  13. */
  14. public function process(ContainerBuilder $container)
  15. {
  16. if (!$container->has('rule_engine.evaluator')) {
  17. return;
  18. }
  19. $evaluator = $container->findDefinition('rule_engine.evaluator');
  20. $providers = $container->findTaggedServiceIds('rule_engine.expression_function_provider');
  21. foreach (array_keys($providers) as $id) {
  22. $evaluator->addMethodCall('addExpressionFunctionProvider', [new Reference($id)]);
  23. }
  24. }
  25. }