b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / update / vendor / phpunit / phpunit / src / Util /
Filename/home/a/home/dev2.destoffenstraat.com/update/vendor/phpunit/phpunit/src/Util/GlobalState.php
Size4.76 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified06-Apr-2021 18:06
Last accessed23-Aug-2025 02:38
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/*
* This file is part of PHPUnit.
*
* (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 PHPUnit\Util;

use Closure;

final class GlobalState
{
/**
* @var string[]
*/
private const SUPER_GLOBAL_ARRAYS = [
'_ENV',
'_POST',
'_GET',
'_COOKIE',
'_SERVER',
'_FILES',
'_REQUEST'
];

public static function getIncludedFilesAsString(): string
{
return static::processIncludedFilesAsString(\get_included_files());
}

/**
* @param string[] $files
*
* @return string
*/
public static function processIncludedFilesAsString(array $files): string
{
$blacklist = new Blacklist;
$prefix = false;
$result = '';

if (\defined('__PHPUNIT_PHAR__')) {
$prefix = 'phar://' . __PHPUNIT_PHAR__ . '/';
}

for ($i = \count($files) - 1; $i > 0; $i--) {
$file = $files[$i];

if (!empty($GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST']) &&
\in_array($file, $GLOBALS['__PHPUNIT_ISOLATION_BLACKLIST'])) {
continue;
}

if ($prefix !== false && \strpos($file, $prefix) === 0) {
continue;
}

// Skip virtual file system protocols
if (\preg_match('/^(vfs|phpvfs[a-z0-9]+):/', $file)) {
continue;
}

if (!$blacklist->isBlacklisted($file) && \is_file($file)) {
$result = 'require_once \'' . $file . "';\n" . $result;
}
}

return $result;
}

public static function getIniSettingsAsString(): string
{
$result = '';
$iniSettings = \ini_get_all(null, false);

foreach ($iniSettings as $key => $value) {
$result .= \sprintf(
'@ini_set(%s, %s);' . "\n",
self::exportVariable($key),
self::exportVariable($value)
);
}

return $result;
}

public static function getConstantsAsString(): string
{
$constants = \get_defined_constants(true);
$result = '';

if (isset($constants['user'])) {
foreach ($constants['user'] as $name => $value) {
$result .= \sprintf(
'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n",
$name,
$name,
self::exportVariable($value)
);
}
}

return $result;
}

public static function getGlobalsAsString(): string
{
$result = '';

foreach (self::SUPER_GLOBAL_ARRAYS as $superGlobalArray) {
if (isset($GLOBALS[$superGlobalArray]) && \is_array($GLOBALS[$superGlobalArray])) {
foreach (\array_keys($GLOBALS[$superGlobalArray]) as $key) {
if ($GLOBALS[$superGlobalArray][$key] instanceof Closure) {
continue;
}

$result .= \sprintf(
'$GLOBALS[\'%s\'][\'%s\'] = %s;' . "\n",
$superGlobalArray,
$key,
self::exportVariable($GLOBALS[$superGlobalArray][$key])
);
}
}
}

$blacklist = self::SUPER_GLOBAL_ARRAYS;
$blacklist[] = 'GLOBALS';

foreach (\array_keys($GLOBALS) as $key) {
if (!$GLOBALS[$key] instanceof Closure && !\in_array($key, $blacklist)) {
$result .= \sprintf(
'$GLOBALS[\'%s\'] = %s;' . "\n",
$key,
self::exportVariable($GLOBALS[$key])
);
}
}

return $result;
}

private static function exportVariable($variable): string
{
if (\is_scalar($variable) || $variable === null ||
(\is_array($variable) && self::arrayOnlyContainsScalars($variable))) {
return \var_export($variable, true);
}

return 'unserialize(' . \var_export(\serialize($variable), true) . ')';
}

/**
* @param array $array
*
* @return bool
*/
private static function arrayOnlyContainsScalars(array $array): bool
{
$result = true;

foreach ($array as $element) {
if (\is_array($element)) {
$result = self::arrayOnlyContainsScalars($element);
} elseif (!\is_scalar($element) && $element !== null) {
$result = false;
}

if ($result === false) {
break;
}
}

return $result;
}
}