diff --git a/vendor/exTpl/Expression.php b/vendor/exTpl/Expression.php index ced08b59a6875c562905f4b64216d427496b1e20..35ea4581001f316024ae8f380cd237b3b3c503c0 100644 --- a/vendor/exTpl/Expression.php +++ b/vendor/exTpl/Expression.php @@ -320,7 +320,7 @@ class FunctionExpression implements Expression $arguments[] = $expr->value($context); } - if (is_callable($callable)) { + if ($callable instanceof \Closure) { return call_user_func_array($callable, $arguments); } diff --git a/vendor/exTpl/Template.php b/vendor/exTpl/Template.php index 0be46bf85fff6eda33c39e91d687ba16fec49ef2..9d5be04be159aa9614d743c2a586ba4963be3c7b 100644 --- a/vendor/exTpl/Template.php +++ b/vendor/exTpl/Template.php @@ -49,7 +49,10 @@ class Template public function __construct($string) { $this->template = new ArrayNode(); - $this->functions = array('count' => 'count', 'strlen' => 'mb_strlen'); + $this->functions = array( + 'count' => function($a) { return count($a); }, + 'strlen' => function($a) { return mb_strlen($a); } + ); self::parseTemplate($this->template, $string, 0); } diff --git a/vendor/exTpl/template_test.php b/vendor/exTpl/template_test.php index b794a820a1b032acb8b5a38ba2c43ef5754b60d9..62aee1c555bc18a4cdbee81784e2c76b53bda429 100644 --- a/vendor/exTpl/template_test.php +++ b/vendor/exTpl/template_test.php @@ -168,8 +168,12 @@ class template_test extends PHPUnit\Framework\TestCase public function testFilters() { - $bindings = array('pi' => 3.14159, 'format_number' => 'number_format', 'upper' => 'strtoupper'); - $template = '{pi|format_number(3) ~ ":" ~ "foobar"|upper}'; + $bindings = array( + 'pi' => 3.14159, + 'format' => function($a, $b) { return number_format($a, $b); }, + 'upper' => function($a) { return strtoupper($a); } + ); + $template = '{pi|format(3) ~ ":" ~ "foobar"|upper}'; $expected = '3.142:FOOBAR'; $tmpl_obj = new Template($template); @@ -178,7 +182,7 @@ class template_test extends PHPUnit\Framework\TestCase public function testRawFilter() { - $bindings = array('foo' => '<img>', 'upper' => 'strtoupper'); + $bindings = array('foo' => '<img>', 'upper' => function($a) { return strtoupper($a); }); $template = '{foo}:{foo|upper|raw}'; $expected = '<img>:<IMG>'; $tmpl_obj = new Template($template);