Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
AddressHierarchyService
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 get
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Domain\Address\Services;
4
5use App\Models\Address\Address;
6
7readonly class AddressHierarchyService
8{
9
10    public function get(Address $address): string
11    {
12        $hierarchy = [];
13
14        /** @var Address|null $parent*/
15        $parent = $address->parent;
16        while ($parent !== null) {
17            $hierarchy[] = $parent->getAttribute('name');
18            /** @var Address|null $parent*/
19            $parent = $parent->parent;
20        }
21
22        $hierarchy = array_reverse($hierarchy);
23
24        return implode(" | ", $hierarchy);
25    }
26}