Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/twig/twig/src/Extension/DebugExtension.php
<?php

/*
 * This file is part of Twig.
 *
 * (c) Fabien Potencier
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Twig\Extension {
use
Twig\TwigFunction;

/**
 * @final
 */
class DebugExtension extends AbstractExtension
{
    public function
getFunctions()
    {
       
// dump is safe if var_dump is overridden by xdebug
       
$isDumpOutputHtmlSafe = \extension_loaded('xdebug')
           
// false means that it was not set (and the default is on) or it explicitly enabled
           
&& (false === ini_get('xdebug.overload_var_dump') || ini_get('xdebug.overload_var_dump'))
           
// false means that it was not set (and the default is on) or it explicitly enabled
            // xdebug.overload_var_dump produces HTML only when html_errors is also enabled
           
&& (false === ini_get('html_errors') || ini_get('html_errors'))
            ||
'cli' === \PHP_SAPI
       
;

        return [
            new
TwigFunction('dump', 'twig_var_dump', ['is_safe' => $isDumpOutputHtmlSafe ? ['html'] : [], 'needs_context' => true, 'needs_environment' => true, 'is_variadic' => true]),
        ];
    }

    public function
getName()
    {
        return
'debug';
    }
}

class_alias('Twig\Extension\DebugExtension', 'Twig_Extension_Debug');
}

namespace {
use
Twig\Environment;
use
Twig\Template;
use
Twig\TemplateWrapper;

function
twig_var_dump(Environment $env, $context, array $vars = [])
{
    if (!
$env->isDebug()) {
        return;
    }

   
ob_start();

    if (!
$vars) {
       
$vars = [];
        foreach (
$context as $key => $value) {
            if (!
$value instanceof Template && !$value instanceof TemplateWrapper) {
               
$vars[$key] = $value;
            }
        }

       
var_dump($vars);
    } else {
        foreach (
$vars as $var) {
           
var_dump($var);
        }
    }

    return
ob_get_clean();
}
}