expressionLanguage = new ExpressionLanguage(new FilesystemAdapter('RuleEngine')); } /** * @param ExpressionFunctionProviderInterface $provider */ public function addExpressionFunctionProvider(ExpressionFunctionProviderInterface $provider) { $this->expressionLanguage->registerProvider($provider); } /** * @param Rule $rule * @param RuleContextInterface $contextObject * @return boolean */ public function evaluate(Rule $rule, RuleContextInterface $contextObject): bool { $expression = $rule->getExpression(); $values = [$contextObject->getContextObjectKey() => $contextObject]; return $rule->getActive() && $this->expressionLanguage->evaluate($expression, $values); } }