<?php 
 
/* 
 * This file is part of the Symfony package. 
 * 
 * (c) Fabien Potencier <[email protected]> 
 * 
 * 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\VarDumper\Cloner\VarCloner; 
use Symfony\Component\VarDumper\Dumper\CliDumper; 
use Symfony\Component\VarDumper\Dumper\HtmlDumper; 
 
// Load the global dump() function 
require_once __DIR__.'/Resources/functions/dump.php'; 
 
/** 
 * @author Nicolas Grekas <[email protected]> 
 */ 
class VarDumper 
{ 
    private static $handler; 
 
    public static function dump($var) 
    { 
        if (null === self::$handler) { 
            $cloner = new VarCloner(); 
            $dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper(); 
            self::$handler = function ($var) use ($cloner, $dumper) { 
                $dumper->dump($cloner->cloneVar($var)); 
            }; 
        } 
 
        return call_user_func(self::$handler, $var); 
    } 
 
    public static function setHandler(callable $callable = null) 
    { 
        $prevHandler = self::$handler; 
        self::$handler = $callable; 
 
        return $prevHandler; 
    } 
} 
 
 |