Hal\Component\BusinessRule\Evaluator::evaluate PHP Метод

evaluate() публичный Метод

Business rule engine Usage: BRE('x > 5', ['x' => 6] BRE('x => x > 5', 6]
public evaluate ( string $expression, array $variables ) : mixed
$expression string
$variables array
Результат mixed
    public function evaluate($expression, $variables)
    {
        if (preg_match('!^(.*?)\\s=>\\s*!', $expression, $m)) {
            list(, $varname) = $m;
            $variables = [$varname => $variables];
            $expression = preg_replace('!(^.*\\s=>\\s*)!', '', $expression);
        }
        $language = new ExpressionLanguage();
        $this->hydrates($language);
        return $language->evaluate($expression, $variables);
    }

Usage Example

 public function testICanUseShortExpressionToGiveVariables()
 {
     $evaluator = new Evaluator();
     $user = (object) array('age' => 25, 'money' => 400);
     $result = $evaluator->evaluate('user => user.age > 18', $user);
     $this->assertEquals(true, $result);
 }