aksoyih / better-dump
BetterDump: A professional-grade debugging library for PHP that provides a high-fidelity visual representation of variables, tailored for modern web development environments.
Installs: 32
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/aksoyih/better-dump
Requires
- php: >=8.2
Requires (Dev)
- phpunit/phpunit: ^10.0
Suggests
- illuminate/support: Required for Laravel integration
README
A professional-grade debugging library for PHP that provides a high-fidelity visual representation of variables, tailored for modern web development environments.
Installation
composer require aksoyih/better-dump
Usage
// Dump and continue execution bd($variable); // Dump and die (stop execution) bdd($variable); // Labeled dump bd($user, 'User Object');
Global Error Handling
BetterDump can act as your application's global error and exception handler, providing a beautiful "Blue Screen of Death" when your code crashes, even if display_errors is off in php.ini.
use Aksoyih\ErrorHandler; (new ErrorHandler())->register(); // Now even fatal errors or unhandled exceptions will be rendered by BetterDump throw new Exception("Oops!");
JSON Output Mode
For debugging API responses, you can switch to JSON mode. This will output the dump as a formatted JSON response with Content-Type: application/json headers.
use Aksoyih\BetterDump; // Enable JSON mode BetterDump::outputJson(true); bd($data);
Laravel Integration
BetterDump comes with a zero-config Service Provider for Laravel.
- Auto-Discovery: The package is automatically discovered.
- Configuration: It respects your
config('app.editor')orconfig('ignition.editor')settings. - Safety: It automatically disables itself in
productionenvironments based onAPP_ENV.
To publish the configuration (Optional):
php artisan vendor:publish --provider="Aksoyih\Integrations\Laravel\BetterDumpServiceProvider"
Configuration
You can configure the editor to open files in. The default is phpstorm.
use Aksoyih\BetterDump; // Supported editors: 'vscode', 'phpstorm' BetterDump::setEditor('vscode');
You can also set a local root directory for editor links. This is useful when your runtime paths are relative or inside a container.
use Aksoyih\BetterDump; BetterDump::setRootDirectory('/path/to/your/project');
Production Safety
BetterDump is disabled by default in production environments (APP_ENV=production or APP_ENV=prod) to prevent accidental leakage of sensitive data.
To force enable it in production:
use Aksoyih\BetterDump; BetterDump::allowProduction(true);
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd+K / Ctrl+K |
Toggle Search |
/ |
Focus Search |
Escape |
Close Search / Close Stack Trace |
Cmd+Click |
Open File in IDE |
Features
- Beautiful UI: Modern, zero-dependency interface with Light/Dark mode support.
- Search: Built-in real-time fuzzy search to filter keys and values.
- Code Snippet Preview: Automatically displays the code surrounding an error or dump location with syntax highlighting.
- Smart Helpers:
bd()(Dump & Continue) andbdd()(Dump & Die). - Stack Trace: View the full execution history leading to the dump.
- LLM-Ready Copy: Copy the dump output as clean JSON with context, perfect for pasting into ChatGPT or Claude.
- Deep Linking: Clickable file paths that open directly in your IDE (PhpStorm/VSCode).
- Image Previews: Hover over image URLs to see a thumbnail.
- Recursion Detection: Safely handles circular references.
- Performance Metrics: Shows execution time and memory usage.
License
MIT License