From b50d881e7fdd3315bff1fda37a803a533c5f6f55 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Thu, 30 Jan 2025 08:25:31 +0400 Subject: [PATCH] maj compat nur/sery --- php/src/file/Stream.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/php/src/file/Stream.php b/php/src/file/Stream.php index f18463a..65216ee 100644 --- a/php/src/file/Stream.php +++ b/php/src/file/Stream.php @@ -310,25 +310,30 @@ class Stream extends AbstractIterator implements IReader, IWriter { } /** @var bool faut-il faire un mapping pour la compatibilité avec nur/sery */ - const UNSERIALIZE_NURSERY_COMPAT = true; + const NURSERY_COMPAT_ENABLED = true; /** * @var string[] mappings pour la compatibilité avec des fichiers générés par * nur/sery */ - const UNSERIALIZE_NURSERY_MAPPING = [ + const NURSERY_COMPAT_MAPPING = [ 'O:22:"nur\sery\php\time\Date":' => 'O:19:"nulib\php\time\Date":', 'O:26:"nur\sery\php\time\DateTime":' => 'O:23:"nulib\php\time\DateTime":', 'O:23:"nur\sery\php\time\Delay":' => 'O:20:"nulib\php\time\Delay":', ]; - function unserialize(?array $options=null, bool $close=true, bool $alreadyLocked=false) { - $contents = $this->getContents($close, $alreadyLocked); - if (static::UNSERIALIZE_NURSERY_COMPAT) { - foreach (self::UNSERIALIZE_NURSERY_MAPPING as $from => $to) { + static function nursery_compat_verifix(string $contents): string { + if (static::NURSERY_COMPAT_ENABLED) { + foreach (self::NURSERY_COMPAT_MAPPING as $from => $to) { $contents = str_replace($from, $to, $contents); } } + return $contents; + } + + function unserialize(?array $options=null, bool $close=true, bool $alreadyLocked=false) { + $contents = $this->getContents($close, $alreadyLocked); + $contents = self::nursery_compat_verifix($contents); $args = [$contents]; if ($options !== null) $args[] = $options; return unserialize(...$args);