PHP code example of memran / marwa-debugbar

1. Go to this page and download the library: Download memran/marwa-debugbar library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

memran / marwa-debugbar example snippets




arwa\DebugBar\Collectors\AlertCollector;
use Marwa\DebugBar\Collectors\DbQueryCollector;
use Marwa\DebugBar\Collectors\ExceptionCollector;
use Marwa\DebugBar\Collectors\KpiCollector;
use Marwa\DebugBar\Collectors\LogCollector;
use Marwa\DebugBar\Collectors\MemoryCollector;
use Marwa\DebugBar\Collectors\PhpCollector;
use Marwa\DebugBar\Collectors\RequestCollector;
use Marwa\DebugBar\Collectors\TimelineCollector;
use Marwa\DebugBar\Collectors\VarDumperCollector;
use Marwa\DebugBar\DebugBar;
use Marwa\DebugBar\Renderer;

$bar = new DebugBar((getenv('DEBUGBAR_ENABLED') ?: '0') === '1');

$bar->collectors()->register(KpiCollector::class);
$bar->collectors()->register(AlertCollector::class);
$bar->collectors()->register(TimelineCollector::class);
$bar->collectors()->register(VarDumperCollector::class);
$bar->collectors()->register(LogCollector::class);
$bar->collectors()->register(ExceptionCollector::class);
$bar->collectors()->register(DbQueryCollector::class);
$bar->collectors()->register(MemoryCollector::class);
$bar->collectors()->register(PhpCollector::class);
$bar->collectors()->register(RequestCollector::class);

$bar->mark('bootstrap');
$bar->log('info', 'Debug bar mounted', ['userId' => 42]);
$bar->addQuery('SELECT * FROM users WHERE id = ?', [42], 3.42, 'mysql');
$bar->addDump(['id' => 42, 'name' => 'Ada'], 'User payload');
$bar->mark('controller_done');

echo (new Renderer($bar))->render();

use Marwa\DebugBar\DebugBar;

$bar = new DebugBar(true);

use Marwa\DebugBar\Collectors\AlertCollector;
use Marwa\DebugBar\Collectors\DbQueryCollector;
use Marwa\DebugBar\Collectors\KpiCollector;
use Marwa\DebugBar\Collectors\LogCollector;
use Marwa\DebugBar\Collectors\RequestCollector;
use Marwa\DebugBar\Collectors\TimelineCollector;
use Marwa\DebugBar\Collectors\VarDumperCollector;

$collectors = $bar->collectors();

$collectors->register(KpiCollector::class);
$collectors->register(AlertCollector::class);
$collectors->register(TimelineCollector::class);
$collectors->register(VarDumperCollector::class);
$collectors->register(LogCollector::class);
$collectors->register(DbQueryCollector::class);
$collectors->register(RequestCollector::class);

$bar->mark('bootstrap');

$bar->log('info', 'Loading dashboard', ['tenant' => 'acme']);

$bar->addQuery(
    'SELECT * FROM invoices WHERE tenant_id = ? ORDER BY created_at DESC',
    ['acme'],
    12.84,
    'mysql'
);

$bar->addDump($currentUser, 'Authenticated user');

try {
    $response = $controller->handle($request);
} catch (\Throwable $e) {
    $bar->addException($e);
    throw $e;
}

$bar->mark('response_ready');

use Marwa\DebugBar\Renderer;

$renderer = new Renderer($bar);

echo $html;
echo $renderer->render();

$bar = debugbar();
$bar->enable();

db_dump($payload, 'Payload');

$bar->collectors()->register(KpiCollector::class);
$bar->collectors()->register(TimelineCollector::class);
$bar->collectors()->register(LogCollector::class);

$bar->collectors()->register(KpiCollector::class);
$bar->collectors()->register(AlertCollector::class);
$bar->collectors()->register(TimelineCollector::class);
$bar->collectors()->register(VarDumperCollector::class);
$bar->collectors()->register(LogCollector::class);
$bar->collectors()->register(ExceptionCollector::class);
$bar->collectors()->register(DbQueryCollector::class);
$bar->collectors()->register(MemoryCollector::class);
$bar->collectors()->register(PhpCollector::class);
$bar->collectors()->register(RequestCollector::class);
$bar->collectors()->register(SessionCollector::class);

$bar = new DebugBar();
$enabledBar = new DebugBar(true);

$bar->enable();

$bar->disable();

if ($bar->isEnabled()) {
    $bar->log('debug', 'Collector active');
}

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$logger = new Logger('debugbar');
$logger->pushHandler(new StreamHandler('php://stdout'));

$bar->setLogger($logger);

$bar->setMaxDumps(50);

$start = $bar->getStartTime();

$elapsed = $bar->elapsedMilliseconds();

$manager = $bar->collectors();
$manager->register(KpiCollector::class);

$bar->mark('bootstrap');
$bar->mark('router_resolved');
$bar->mark('response_sent');

$bar->log('warning', 'Rate limit nearly reached', ['remaining' => 3]);

$bar->addQuery(
    'SELECT * FROM users WHERE email = ?',
    ['[email protected]'],
    8.37,
    'mysql'
);

$bar->addDump($user, 'Current user');
$bar->addDump($payload, 'Payload', __FILE__, __LINE__);

try {
    $service->run();
} catch (\Throwable $e) {
    $bar->addException($e);
}

$bar->registerExceptionHandlers();

$bar->registerExceptionHandlers(false);

$state = $bar->state();
$queryCount = count($state->queries);

$bar->collectors()->register(KpiCollector::class);
$bar->collectors()->register(SessionCollector::class, enabled: false);

$bar->collectors()->setEnabled('session', true);

$count = $bar->collectors()->autoDiscover(
    __DIR__ . '/src/DebugCollectors',
    'App\\DebugCollectors'
);

$rows = $bar->collectors()->renderAll($bar->state());

$tabs = $bar->collectors()->metadata();

$renderer = new Renderer($bar);

echo $renderer->render();

$bar = debugbar();
$bar->enable();

db_dump($requestData, 'Request Data');

public static function key(): string
{
    return 'jobs';
}

public static function label(): string
{
    return 'Jobs';
}

public static function icon(): string
{
    return '⚙️';
}

public static function order(): int
{
    return 210;
}

public function collect(DebugState $state): array
{
    return ['jobs' => $this->jobs];
}

public function renderHtml(array $data): string
{
    return '<div>Queued jobs: ' . count($data['jobs']) . '</div>';
}



namespace App\DebugCollectors;

use Marwa\DebugBar\Contracts\Collector;
use Marwa\DebugBar\Core\DebugState;

final class FeatureFlagCollector implements Collector
{
    public static function key(): string
    {
        return 'feature_flags';
    }

    public static function label(): string
    {
        return 'Flags';
    }

    public static function icon(): string
    {
        return '🚩';
    }

    public static function order(): int
    {
        return 240;
    }

    public function collect(DebugState $state): array
    {
        unset($state);

        return [
            'items' => [
                'new_checkout' => true,
                'beta_dashboard' => false,
            ],
        ];
    }

    public function renderHtml(array $data): string
    {
        $items = $data['items'] ?? [];

        return '<pre>' . htmlspecialchars(print_r($items, true), ENT_QUOTES, 'UTF-8') . '</pre>';
    }
}

$bar->collectors()->register(\App\DebugCollectors\FeatureFlagCollector::class);

use Marwa\DebugBar\Extensions\TwigDumpExtension;

$twig->addExtension(new TwigDumpExtension($bar));
twig
{{ db_dump(user, 'Current user') }}