REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 5.57 KB
Close
/proc/thread-self/root/home/byroehnu/easetack.com/vendor/sebastian/code-unit/src/Mapper.php
Text
Base64
<?php declare(strict_types=1); /* * This file is part of sebastian/code-unit. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace SebastianBergmann\CodeUnit; use function array_keys; use function array_merge; use function array_unique; use function array_values; use function class_exists; use function explode; use function function_exists; use function interface_exists; use function ksort; use function method_exists; use function sort; use function sprintf; use function str_contains; use function trait_exists; use ReflectionClass; use ReflectionFunction; use ReflectionMethod; final class Mapper { /** * @return array<string,list<int>> */ public function codeUnitsToSourceLines(CodeUnitCollection $codeUnits): array { $result = []; foreach ($codeUnits as $codeUnit) { $sourceFileName = $codeUnit->sourceFileName(); if (!isset($result[$sourceFileName])) { $result[$sourceFileName] = []; } $result[$sourceFileName] = array_merge($result[$sourceFileName], $codeUnit->sourceLines()); } foreach (array_keys($result) as $sourceFileName) { $result[$sourceFileName] = array_values(array_unique($result[$sourceFileName])); sort($result[$sourceFileName]); } ksort($result); return $result; } /** * @throws InvalidCodeUnitException * @throws ReflectionException */ public function stringToCodeUnits(string $unit): CodeUnitCollection { if (str_contains($unit, '::')) { [$firstPart, $secondPart] = explode('::', $unit); if ($this->isUserDefinedMethod($firstPart, $secondPart)) { return CodeUnitCollection::fromList(CodeUnit::forClassMethod($firstPart, $secondPart)); } if ($this->isUserDefinedFunction($secondPart)) { return CodeUnitCollection::fromList(CodeUnit::forFunction($secondPart)); } if ($this->isUserDefinedInterface($firstPart)) { return CodeUnitCollection::fromList(CodeUnit::forInterfaceMethod($firstPart, $secondPart)); } if ($this->isUserDefinedTrait($firstPart)) { return CodeUnitCollection::fromList(CodeUnit::forTraitMethod($firstPart, $secondPart)); } } else { if ($this->isUserDefinedClass($unit)) { return CodeUnitCollection::fromList( ...array_merge( [CodeUnit::forClass($unit)], $this->traits(new ReflectionClass($unit)), ), ); } if ($this->isUserDefinedInterface($unit)) { return CodeUnitCollection::fromList(CodeUnit::forInterface($unit)); } if ($this->isUserDefinedTrait($unit)) { return CodeUnitCollection::fromList(CodeUnit::forTrait($unit)); } if ($this->isUserDefinedFunction($unit)) { return CodeUnitCollection::fromList(CodeUnit::forFunction($unit)); } } throw new InvalidCodeUnitException( sprintf( '"%s" is not a valid code unit', $unit, ), ); } /** * @phpstan-assert-if-true callable-string $functionName */ private function isUserDefinedFunction(string $functionName): bool { if (!function_exists($functionName)) { return false; } return (new ReflectionFunction($functionName))->isUserDefined(); } /** * @phpstan-assert-if-true class-string $className */ private function isUserDefinedClass(string $className): bool { if (!class_exists($className)) { return false; } return (new ReflectionClass($className))->isUserDefined(); } /** * @phpstan-assert-if-true interface-string $interfaceName */ private function isUserDefinedInterface(string $interfaceName): bool { if (!interface_exists($interfaceName)) { return false; } return (new ReflectionClass($interfaceName))->isUserDefined(); } /** * @phpstan-assert-if-true trait-string $traitName */ private function isUserDefinedTrait(string $traitName): bool { if (!trait_exists($traitName)) { return false; } return (new ReflectionClass($traitName))->isUserDefined(); } /** * @phpstan-assert-if-true class-string $className */ private function isUserDefinedMethod(string $className, string $methodName): bool { if (!class_exists($className)) { return false; } if (!method_exists($className, $methodName)) { return false; } return (new ReflectionMethod($className, $methodName))->isUserDefined(); } /** * @param ReflectionClass<object> $class * * @return list<TraitUnit> */ private function traits(ReflectionClass $class): array { $result = []; foreach ($class->getTraits() as $trait) { if (!$trait->isUserDefined()) { // @codeCoverageIgnoreStart continue; // @codeCoverageIgnoreEnd } $result[] = CodeUnit::forTrait($trait->getName()); $result = array_merge($result, $this->traits($trait)); } return $result; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
exceptions
DIR
-
drwxrwxrwx
2025-05-16 16:14:51
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ClassMethodUnit.php
459 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ClassUnit.php
447 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CodeUnit.php
13.42 KB
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CodeUnitCollection.php
1.55 KB
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CodeUnitCollectionIterator.php
1.08 KB
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
FileUnit.php
445 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
FunctionUnit.php
453 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
InterfaceMethodUnit.php
467 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
InterfaceUnit.php
455 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Mapper.php
5.57 KB
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TraitMethodUnit.php
459 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TraitUnit.php
447 B
lrw-rw-rw-
2025-03-19 07:56:08
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).