!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/uploads/script/vendor/nunomaduro/larastan/src/Methods/Pipes/   drwxr-xr-x
Free 12.98 GB of 57.97 GB (22.4%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     BuilderLocalMacros.php (3.31 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
NunoMaduro\Larastan\Methods\Pipes;

use 
Closure;
use 
Illuminate\Database\Eloquent\Builder;
use 
Illuminate\Database\Eloquent\Model;
use 
Illuminate\Database\Eloquent\SoftDeletes;
use function 
in_array;
use 
NunoMaduro\Larastan\Concerns;
use 
NunoMaduro\Larastan\Contracts\Methods\PassableContract;
use 
NunoMaduro\Larastan\Contracts\Methods\Pipes\PipeContract;
use 
NunoMaduro\Larastan\Methods\Macro;
use 
PHPStan\Type\Generic\GenericObjectType;
use 
PHPStan\Type\Generic\TemplateTypeMap;
use 
PHPStan\Type\ObjectType;
use 
PHPStan\Type\TypehintHelper;
use 
ReflectionFunction;
use 
ReflectionParameter;

/**
 * @internal
 */
final class BuilderLocalMacros implements PipeContract
{
    use 
Concerns\HasContainer;

    
/**
     * {@inheritdoc}
     */
    
public function handle(PassableContract $passableClosure $next): void
    
{
        
$classReflection $passable->getClassReflection();

        
/** @var class-string $className */
        
$className $classReflection->getName();
        
$found false;

        if ((
$classReflection->isSubclassOf(Builder::class) || $classReflection->getName() === Builder::class) && $classReflection->getActiveTemplateTypeMap()->getType('TModelClass') !== null) {
            
/** @var ObjectType $modelType */
            
$modelType $classReflection->getActiveTemplateTypeMap()->getType('TModelClass');

            if (
$modelType instanceof ObjectType) {
                
$classReflection $passable->getBroker()->getClass($modelType->getClassName());
            }
        }

        if (
$classReflection->isSubclassOf(Model::class) && in_array(SoftDeletes::class,
                
trait_uses_recursive($classReflection->getName()), true)) {
            
$methods = [
                
'restore' => function (Builder $builder) {
                },
                
'withTrashed' => function (Builder $builderbool $withTrashed true) {
                },
                
'withoutTrashed' => function (Builder $builder) {
                },
                
'onlyTrashed' => function (Builder $builder) {
                },
            ];

            if (
array_key_exists($passable->getMethodName(), $methods)) {
                
$reflectionFunction = new ReflectionFunction($methods[$passable->getMethodName()]);
                
$parameters $reflectionFunction->getParameters();
                unset(
$parameters[0]); // The query argument.
                
$parameters array_values($parameters);

                
$macro = new Macro($className$passable->getMethodName(), $reflectionFunction);

                
$macro->setParameters($parameters);
                
$macro->setIsStatic(true);

                
$passable->setMethodReflection($passable->getMethodReflectionFactory()->create(
                    
$classReflectionnull,
                    
$macroTemplateTypeMap::createEmpty(),
                    
array_map(function (ReflectionParameter $parameter) {
                        return 
TypehintHelper::decideTypeFromReflection($parameter->getType());
                    }, 
$parameters), new GenericObjectType(Builder::class, [new ObjectType($classReflection->getName())]),
                    
nullnull,
                    
falsefalse,
                    
falsenull));
                
$found true;
            }
        }

        if (! 
$found) {
            
$next($passable);
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0142 ]--