From 1739fcf916c5b24899d477f6c6b947b384966997 Mon Sep 17 00:00:00 2001 From: John Koster Date: Mon, 23 Jun 2025 21:36:21 -0500 Subject: [PATCH] Revert "[5.x] Detect recursion when augmenting Entries (#11854)" This reverts commit 6f2a5fbae8a2016b37358458b850249e2862daa2. --- src/Data/HasOrigin.php | 22 ------------------- .../RecursiveAugmentationException.php | 7 ------ tests/Data/Entries/EntryTest.php | 20 ----------------- 3 files changed, 49 deletions(-) delete mode 100644 src/Exceptions/RecursiveAugmentationException.php diff --git a/src/Data/HasOrigin.php b/src/Data/HasOrigin.php index 2963b0dd2c4..fe045594ee8 100644 --- a/src/Data/HasOrigin.php +++ b/src/Data/HasOrigin.php @@ -2,13 +2,10 @@ namespace Statamic\Data; -use Statamic\Exceptions\RecursiveAugmentationException; use Statamic\Facades\Blink; trait HasOrigin { - private $resolvingValues = false; - /** * @var string */ @@ -34,33 +31,14 @@ public function keys() ->merge($computedKeys); } - private function guardRecursiveAugmentation() - { - if ($this->resolvingValues) { - $className = get_class($this); - throw new RecursiveAugmentationException("Recursion detected while augmenting [{$className}] with ID [{$this->id}]."); - } - - $this->resolvingValues = true; - } - - private function ungardRecursiveAugmentation() - { - $this->resolvingValues = false; - } - public function values() { - $this->guardRecursiveAugmentation(); - $originFallbackValues = method_exists($this, 'getOriginFallbackValues') ? $this->getOriginFallbackValues() : collect(); $originValues = $this->hasOrigin() ? $this->origin()->values() : collect(); $computedData = method_exists($this, 'computedData') ? $this->computedData() : []; - $this->ungardRecursiveAugmentation(); - return collect() ->merge($originFallbackValues) ->merge($originValues) diff --git a/src/Exceptions/RecursiveAugmentationException.php b/src/Exceptions/RecursiveAugmentationException.php deleted file mode 100644 index 2e0f4aaee69..00000000000 --- a/src/Exceptions/RecursiveAugmentationException.php +++ /dev/null @@ -1,7 +0,0 @@ -assertEquals('A', $entry->getSupplement('bar')); $this->assertEquals('B', $clone->getSupplement('bar')); } - - #[Test] - public function it_detects_recursive_augmentation() - { - $this->expectException(RecursiveAugmentationException::class); - $this->expectExceptionMessage('Recursion detected while augmenting [Statamic\Entries\Entry] with ID [entry-id]'); - - \Statamic\Facades\Collection::computed('test', 'the_value', function ($entry) { - // Trigger recursion that will bypass without computed values. - return $entry->routeData(); - }); - - $entry = EntryFactory::id('entry-id') - ->collection('test') - ->slug('entry-slug') - ->create(); - - $entry->values(); - } }