From 8aa9ddd7de3d8e5abb18acd7ba3b087f54886d0d Mon Sep 17 00:00:00 2001 From: Kevin Verschaeve Date: Sat, 12 May 2018 16:36:31 +0200 Subject: [PATCH 1/2] [ExpressionLanguage] Add missing argument in example code --- components/expression_language/extending.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/expression_language/extending.rst b/components/expression_language/extending.rst index 4c766c4cddc..cb60cee8eb4 100644 --- a/components/expression_language/extending.rst +++ b/components/expression_language/extending.rst @@ -34,7 +34,7 @@ This method has 3 arguments: use Symfony\Component\ExpressionLanguage\ExpressionLanguage; $expressionLanguage = new ExpressionLanguage(); - $expressionLanguage->register('lowercase', function ($str) { + $expressionLanguage->register('lowercase', function ($arguments, $str) { return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str); }, function ($arguments, $str) { if (!is_string($str)) { From daa6a770be35cc83a4468247ab21369a9885166d Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 27 Jun 2018 15:28:09 +0200 Subject: [PATCH 2/2] Reword --- components/expression_language/extending.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/components/expression_language/extending.rst b/components/expression_language/extending.rst index cb60cee8eb4..c070184385d 100644 --- a/components/expression_language/extending.rst +++ b/components/expression_language/extending.rst @@ -34,7 +34,7 @@ This method has 3 arguments: use Symfony\Component\ExpressionLanguage\ExpressionLanguage; $expressionLanguage = new ExpressionLanguage(); - $expressionLanguage->register('lowercase', function ($arguments, $str) { + $expressionLanguage->register('lowercase', function ($str) { return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str); }, function ($arguments, $str) { if (!is_string($str)) { @@ -45,11 +45,11 @@ This method has 3 arguments: }); var_dump($expressionLanguage->evaluate('lowercase("HELLO")')); + // this will print: hello -This will print ``hello``. Both the **compiler** and **evaluator** are passed -an ``arguments`` variable as their first argument, which is equal to the -second argument to ``evaluate()`` or ``compile()`` (e.g. the "values" when -evaluating or the "names" if compiling). +In addition to the custom function arguments, the **evaluator** is passed an +``arguments`` variable as its first argument, which is equal to the second +argument of ``compile()`` (e.g. the "values" when evaluating an expression). .. _components-expression-language-provider: