diff --git a/composer.json b/composer.json index 1726403..4210c96 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,8 @@ "opis/closure": "Allow to serialize PHP closures" }, "require-dev": { - "phpunit/phpunit": ">=8 <12.0" + "phpunit/phpunit": ">=8 <12.0", + "opis/closure": "^3.0 || ^4.0" }, "autoload": { "psr-4": { diff --git a/src/JsonSerializer/ClosureSerializer/OpisClosureSerializer.php b/src/JsonSerializer/ClosureSerializer/OpisClosureSerializer.php index b9c4ab2..bf5f65f 100644 --- a/src/JsonSerializer/ClosureSerializer/OpisClosureSerializer.php +++ b/src/JsonSerializer/ClosureSerializer/OpisClosureSerializer.php @@ -15,6 +15,9 @@ class OpisClosureSerializer implements ClosureSerializer { */ public function serialize(Closure $closure) { + if (function_exists('Opis\Closure\serialize')) { + return \Opis\Closure\serialize($closure); + } return serialize(new OpisSerializableClosure($closure)); } @@ -26,6 +29,9 @@ public function serialize(Closure $closure) */ public function unserialize($serialized) { + if (function_exists('Opis\Closure\unserialize')) { + return \Opis\Closure\unserialize($serialized); + } return unserialize($serialized)->getClosure(); }