(string $folder, bool $allowRoot = true)
| 614 | } |
| 615 | |
| 616 | private static function splitFolderSegments(string $folder, bool $allowRoot = true): ?array |
| 617 | { |
| 618 | $normalized = ACL::normalizeFolder($folder); |
| 619 | if ($normalized === 'root') { |
| 620 | return $allowRoot ? [] : null; |
| 621 | } |
| 622 | |
| 623 | $parts = explode('/', $normalized); |
| 624 | if ($parts === [] || in_array('', $parts, true)) { |
| 625 | return null; |
| 626 | } |
| 627 | |
| 628 | foreach ($parts as $seg) { |
| 629 | if (!self::isValidFolderSegment($seg)) { |
| 630 | return null; |
| 631 | } |
| 632 | } |
| 633 | |
| 634 | return $parts; |
| 635 | } |
| 636 | |
| 637 | private static function safeReal(string $baseReal, string $p): ?string |
| 638 | { |
no test coverage detected