diff --git a/src/SM/Callback/Callback.php b/src/SM/Callback/Callback.php index 8ffdb19..a2783a6 100644 --- a/src/SM/Callback/Callback.php +++ b/src/SM/Callback/Callback.php @@ -58,7 +58,10 @@ public function call(TransitionEvent $event) $expr = new ExpressionLanguage(); $args = array_map( function($arg) use($expr, $event) { - if (!is_string($arg)) { + if ( + !is_string($arg) || + !($this->str_starts_with($arg, 'object') || $this->str_starts_with($arg, 'event')) + ) { return $arg; } @@ -141,4 +144,13 @@ protected function filterCallable($callable, TransitionEvent $event): callable return $callable; } + + protected function str_starts_with(string $haystack, string $needle): bool + { + if (!function_exists('str_starts_with')) { + return $needle !== '' && strncmp($haystack, $needle, strlen($needle)) === 0; + } + + return \str_starts_with($haystack, $needle); + } }