From 698d87d578dfe5d2a794f75003ded834081ca738 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Tue, 22 Sep 2020 22:09:51 +0200 Subject: Allow returning a non-string (usually void) again in custom tags --- src/ste/STECore.php | 2 +- .../test_user_tag_returns_nothing/Test.php | 22 ++++++++++++++++++++++ .../test_user_tag_returns_nothing/test.tpl | 1 + .../functional/test_user_tag_returns_nothing/want | 0 4 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/functional/test_user_tag_returns_nothing/Test.php create mode 100644 tests/functional/test_user_tag_returns_nothing/test.tpl create mode 100644 tests/functional/test_user_tag_returns_nothing/want diff --git a/src/ste/STECore.php b/src/ste/STECore.php index a53e652..595228b 100644 --- a/src/ste/STECore.php +++ b/src/ste/STECore.php @@ -123,7 +123,7 @@ class STECore throw new RuntimeError("Can not call tag \"$name\": Does not exist."); } } - return call_user_func($this->tags[$name], $this, $params, $sub); + return (string)call_user_func($this->tags[$name], $this, $params, $sub); } catch (RuntimeError $e) { if (!$this->mute_runtime_errors) { return "RuntimeError occurred on tag '$name': " . $e->getMessage(); diff --git a/tests/functional/test_user_tag_returns_nothing/Test.php b/tests/functional/test_user_tag_returns_nothing/Test.php new file mode 100644 index 0000000..cd85908 --- /dev/null +++ b/tests/functional/test_user_tag_returns_nothing/Test.php @@ -0,0 +1,22 @@ +register_tag('foobar', function ($ste, $params, $sub) { + // nop + }); + } + + protected function getDirectory(): string + { + return __DIR__; + } +} diff --git a/tests/functional/test_user_tag_returns_nothing/test.tpl b/tests/functional/test_user_tag_returns_nothing/test.tpl new file mode 100644 index 0000000..94799a8 --- /dev/null +++ b/tests/functional/test_user_tag_returns_nothing/test.tpl @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/functional/test_user_tag_returns_nothing/want b/tests/functional/test_user_tag_returns_nothing/want new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3-70-g09d2