class ExpressionLanguage

Allows to compile and evaluate expressions written in your own DSL.

Properties

protected $functions

Methods

__construct(CacheItemPoolInterface $cache = null, array $providers = [])

No description

string
compile(Expression|string $expression, array $names = [])

Compiles an expression source code.

mixed
evaluate(Expression|string $expression, array $values = [])

Evaluate an expression.

parse(Expression|string $expression, array $names)

Parses an expression.

register(string $name, callable $compiler, callable $evaluator)

Registers a function.

addFunction(ExpressionFunction $function)

No description

registerFunctions()

No description

Details

at line 37
__construct(CacheItemPoolInterface $cache = null, array $providers = [])

Parameters

CacheItemPoolInterface $cache
array $providers

at line 63
string compile(Expression|string $expression, array $names = [])

Compiles an expression source code.

Parameters

Expression|string $expression The expression to compile
array $names An array of valid names

Return Value

string The compiled PHP source code

at line 76
mixed evaluate(Expression|string $expression, array $values = [])

Evaluate an expression.

Parameters

Expression|string $expression The expression to compile
array $values An array of values

Return Value

mixed The result of the evaluation of the expression

at line 89
ParsedExpression parse(Expression|string $expression, array $names)

Parses an expression.

Parameters

Expression|string $expression The expression to parse
array $names An array of valid names

Return Value

ParsedExpression A ParsedExpression instance

at line 126
register(string $name, callable $compiler, callable $evaluator)

Registers a function.

Parameters

string $name The function name
callable $compiler A callable able to compile the function
callable $evaluator A callable able to evaluate the function

Exceptions

LogicException when registering a function after calling evaluate(), compile() or parse()

See also

ExpressionFunction

at line 135
addFunction(ExpressionFunction $function)

Parameters

ExpressionFunction $function

at line 140
registerProvider(ExpressionFunctionProviderInterface $provider)

at line 147
protected registerFunctions()