| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 | 
							- <?php
 
- /*
 
-  * This file is part of the Symfony package.
 
-  *
 
-  * (c) Fabien Potencier <fabien@symfony.com>
 
-  *
 
-  * For the full copyright and license information, please view the LICENSE
 
-  * file that was distributed with this source code.
 
-  */
 
- namespace Symfony\Component\VarDumper;
 
- use Symfony\Component\HttpFoundation\Request;
 
- use Symfony\Component\HttpFoundation\RequestStack;
 
- use Symfony\Component\HttpKernel\Debug\FileLinkFormatter;
 
- use Symfony\Component\VarDumper\Caster\ReflectionCaster;
 
- use Symfony\Component\VarDumper\Cloner\VarCloner;
 
- use Symfony\Component\VarDumper\Dumper\CliDumper;
 
- use Symfony\Component\VarDumper\Dumper\ContextProvider\CliContextProvider;
 
- use Symfony\Component\VarDumper\Dumper\ContextProvider\RequestContextProvider;
 
- use Symfony\Component\VarDumper\Dumper\ContextProvider\SourceContextProvider;
 
- use Symfony\Component\VarDumper\Dumper\ContextualizedDumper;
 
- use Symfony\Component\VarDumper\Dumper\HtmlDumper;
 
- use Symfony\Component\VarDumper\Dumper\ServerDumper;
 
- // Load the global dump() function
 
- require_once __DIR__.'/Resources/functions/dump.php';
 
- /**
 
-  * @author Nicolas Grekas <p@tchwork.com>
 
-  */
 
- class VarDumper
 
- {
 
-     /**
 
-      * @var callable|null
 
-      */
 
-     private static $handler;
 
-     public static function dump($var)
 
-     {
 
-         if (null === self::$handler) {
 
-             self::register();
 
-         }
 
-         return (self::$handler)($var);
 
-     }
 
-     /**
 
-      * @return callable|null
 
-      */
 
-     public static function setHandler(callable $callable = null)
 
-     {
 
-         $prevHandler = self::$handler;
 
-         // Prevent replacing the handler with expected format as soon as the env var was set:
 
-         if (isset($_SERVER['VAR_DUMPER_FORMAT'])) {
 
-             return $prevHandler;
 
-         }
 
-         self::$handler = $callable;
 
-         return $prevHandler;
 
-     }
 
-     private static function register(): void
 
-     {
 
-         $cloner = new VarCloner();
 
-         $cloner->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO);
 
-         $format = $_SERVER['VAR_DUMPER_FORMAT'] ?? null;
 
-         switch (true) {
 
-             case 'html' === $format:
 
-                 $dumper = new HtmlDumper();
 
-                 break;
 
-             case 'cli' === $format:
 
-                 $dumper = new CliDumper();
 
-                 break;
 
-             case 'server' === $format:
 
-             case $format && 'tcp' === parse_url($format, \PHP_URL_SCHEME):
 
-                 $host = 'server' === $format ? $_SERVER['VAR_DUMPER_SERVER'] ?? '127.0.0.1:9912' : $format;
 
-                 $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper();
 
-                 $dumper = new ServerDumper($host, $dumper, self::getDefaultContextProviders());
 
-                 break;
 
-             default:
 
-                 $dumper = \in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) ? new CliDumper() : new HtmlDumper();
 
-         }
 
-         if (!$dumper instanceof ServerDumper) {
 
-             $dumper = new ContextualizedDumper($dumper, [new SourceContextProvider()]);
 
-         }
 
-         self::$handler = function ($var) use ($cloner, $dumper) {
 
-             $dumper->dump($cloner->cloneVar($var));
 
-         };
 
-     }
 
-     private static function getDefaultContextProviders(): array
 
-     {
 
-         $contextProviders = [];
 
-         if (!\in_array(\PHP_SAPI, ['cli', 'phpdbg'], true) && class_exists(Request::class)) {
 
-             $requestStack = new RequestStack();
 
-             $requestStack->push(Request::createFromGlobals());
 
-             $contextProviders['request'] = new RequestContextProvider($requestStack);
 
-         }
 
-         $fileLinkFormatter = class_exists(FileLinkFormatter::class) ? new FileLinkFormatter(null, $requestStack ?? null) : null;
 
-         return $contextProviders + [
 
-             'cli' => new CliContextProvider(),
 
-             'source' => new SourceContextProvider(null, null, $fileLinkFormatter),
 
-         ];
 
-     }
 
- }
 
 
  |