1 | <?php |
||
6 | class Declaration |
||
7 | { |
||
8 | /** @var Proxy\Class_ */ |
||
9 | public $class; |
||
10 | |||
11 | /** @var Proxy\Class_ */ |
||
12 | public $parent; |
||
13 | |||
14 | public function __construct(string $parent, string $class) |
||
19 | |||
20 | private function extractClassName(string $class): string |
||
21 | { |
||
22 | $lastPosition = mb_strripos($class, '\\'); |
||
23 | if ($lastPosition === false) { |
||
24 | return $class; |
||
25 | } |
||
26 | |||
27 | return mb_substr($class, $lastPosition + 1); |
||
28 | } |
||
29 | |||
30 | private function extractNamespaceOfParentClass(string $class, string $parent): ?string |
||
31 | { |
||
32 | $lastPosition = mb_strripos($class, '\\'); |
||
33 | if ($lastPosition === 0) { |
||
34 | return null; |
||
35 | } |
||
36 | |||
37 | if ($lastPosition !== false) { |
||
38 | return $this->extractNamespace($class); |
||
39 | } |
||
40 | |||
41 | return $this->extractNamespace($parent); |
||
42 | } |
||
43 | |||
44 | private function extractNamespace(string $class): ?string |
||
53 | } |