From da15d40ac696e158a140f1c1031e18f6f7e0b554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Potock=C3=BD?= Date: Thu, 12 Jun 2025 09:59:47 +0200 Subject: [PATCH 1/3] [12.x] Introduce `ComputesOnceableHashInterface` --- .../Support/ComputesOnceableHashInterface.php | 15 +++++++++++++++ src/Illuminate/Support/Onceable.php | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php diff --git a/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php b/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php new file mode 100644 index 000000000000..5080d419b790 --- /dev/null +++ b/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php @@ -0,0 +1,15 @@ + is_object($argument) ? spl_object_hash($argument) : $argument, + static function (mixed $argument) { + if ($argument instanceof ComputesOnceableHashInterface) { + return $argument->computeOnceableHash(); + } + + if (is_object($argument)) { + return spl_object_hash($argument); + } + + return $argument; + }, $callable instanceof Closure ? (new ReflectionClosure($callable))->getClosureUsedVariables() : [], ); From 49fcd1c524784c7976e840fe6cb222510435adae Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Thu, 12 Jun 2025 09:06:33 -0500 Subject: [PATCH 2/3] formatting --- .../Support/ComputesOnceableHashInterface.php | 15 --------------- src/Illuminate/Contracts/Support/HasOnceHash.php | 15 +++++++++++++++ src/Illuminate/Support/Onceable.php | 6 +++--- 3 files changed, 18 insertions(+), 18 deletions(-) delete mode 100644 src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php create mode 100644 src/Illuminate/Contracts/Support/HasOnceHash.php diff --git a/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php b/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php deleted file mode 100644 index 5080d419b790..000000000000 --- a/src/Illuminate/Contracts/Support/ComputesOnceableHashInterface.php +++ /dev/null @@ -1,15 +0,0 @@ -computeOnceableHash(); + if ($argument instanceof HasOnceHash) { + return $argument->onceHash(); } if (is_object($argument)) { From 24c774f5ed4d6d31d0dbbca94317a0875bcec61a Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Thu, 12 Jun 2025 09:07:22 -0500 Subject: [PATCH 3/3] Remove declare --- src/Illuminate/Contracts/Support/HasOnceHash.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Illuminate/Contracts/Support/HasOnceHash.php b/src/Illuminate/Contracts/Support/HasOnceHash.php index 7081bee418ff..e9ec6e59463f 100644 --- a/src/Illuminate/Contracts/Support/HasOnceHash.php +++ b/src/Illuminate/Contracts/Support/HasOnceHash.php @@ -1,7 +1,5 @@