aboutsummaryrefslogtreecommitdiff
path: root/vendor
diff options
context:
space:
mode:
authorElmar Ludwig <elmar.ludwig@uni-osnabrueck.de>2023-03-28 07:38:26 +0000
committerDavid Siegfried <david.siegfried@uni-vechta.de>2023-03-28 07:38:26 +0000
commit772895bea128b7b33865d4530311489836c91b96 (patch)
tree6e2ec29ecd55703fd6989457de785e8113dc3349 /vendor
parent43f35cc46bfb1129ce55f5bbbcd1dabbfa8efc73 (diff)
require Closure instead of callable, fixes #2446
Closes #2446 Merge request studip/studip!1669
Diffstat (limited to 'vendor')
-rw-r--r--vendor/exTpl/Expression.php2
-rw-r--r--vendor/exTpl/Template.php5
-rw-r--r--vendor/exTpl/template_test.php10
3 files changed, 12 insertions, 5 deletions
diff --git a/vendor/exTpl/Expression.php b/vendor/exTpl/Expression.php
index ced08b5..35ea458 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 0be46bf..9d5be04 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 b794a82..62aee1c 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 = '&lt;img&gt;:<IMG>';
$tmpl_obj = new Template($template);