From 6ad39e3ba64e518bcdba1fc32b6247375be39a8a Mon Sep 17 00:00:00 2001 From: Sam Light Date: Wed, 10 Jun 2026 19:00:32 +0100 Subject: shared code in traits for common features for groups --- src/Concerns/HasAncestors.php | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/Concerns/HasAncestors.php (limited to 'src/Concerns/HasAncestors.php') diff --git a/src/Concerns/HasAncestors.php b/src/Concerns/HasAncestors.php new file mode 100644 index 0000000..248e9c8 --- /dev/null +++ b/src/Concerns/HasAncestors.php @@ -0,0 +1,37 @@ +parent; + while ( + null !== $instance + && $count++ < self::MAX_ANCESTORY_DEPTH + ) { + $results[] = $instance; + $instance = $instance->parent; + } + + return array_reverse($results); + } + + /** @return self[] */ + public function getAncestorsAndSelf(): array + { + $results = $this->getAncestors(); + $results[] = $this; + + return $results; + } +} -- cgit v1.2.3