From 7d4e2bd2aae791013b0ab00ca3186cebc4d29763 Mon Sep 17 00:00:00 2001 From: NioFBI Date: Thu, 21 Aug 2025 02:31:10 +0300 Subject: [PATCH] Add helper to generate object IDs without spl_object_id --- src/PhpSpreadsheet/Shared/ObjectIdHelper.php | 16 ++++++++++++++++ src/PhpSpreadsheet/Style/Style.php | 3 ++- src/PhpSpreadsheet/Worksheet/Worksheet.php | 7 ++++--- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 src/PhpSpreadsheet/Shared/ObjectIdHelper.php diff --git a/src/PhpSpreadsheet/Shared/ObjectIdHelper.php b/src/PhpSpreadsheet/Shared/ObjectIdHelper.php new file mode 100644 index 0000000000..f50081548a --- /dev/null +++ b/src/PhpSpreadsheet/Shared/ObjectIdHelper.php @@ -0,0 +1,16 @@ + hash. - $objId = spl_object_id($style); + $objId = ObjectIdHelper::id($style); // Look for the original HashCode $styleHash = self::$cachedStyles['hashByObjId'][$objId] ?? null; diff --git a/src/PhpSpreadsheet/Worksheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet/Worksheet.php index f512ee406a..1cedfa74a8 100644 --- a/src/PhpSpreadsheet/Worksheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet/Worksheet.php @@ -25,6 +25,7 @@ use PhpOffice\PhpSpreadsheet\RichText\RichText; use PhpOffice\PhpSpreadsheet\Shared; use PhpOffice\PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Shared\ObjectIdHelper; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\Color; @@ -355,7 +356,7 @@ public function __construct(?Spreadsheet $parent = null, string $title = 'Worksh { // Set parent and title $this->parent = $parent; - $this->hash = spl_object_id($this); + $this->hash = ObjectIdHelper::id($this); $this->setTitle($title, false); // setTitle can change $pTitle $this->setCodeName($this->getTitle()); @@ -414,7 +415,7 @@ public function __destruct() public function __wakeup(): void { - $this->hash = spl_object_id($this); + $this->hash = ObjectIdHelper::id($this); } /** @@ -3759,7 +3760,7 @@ public function __clone() } } } - $this->hash = spl_object_id($this); + $this->hash = ObjectIdHelper::id($this); } /**