# VarDump
# Summary
Multi-purpose colorful modern alternative to var_dump (opens new window).
💡 VarDump introduction
Read VarDump for PHP (opens new window) at Rodolfo's blog for a compressive introduction to this package.
# Installing
VarDump is available through Packagist (opens new window) and the repository source is at chevere/var-dump (opens new window).
Run the following command to install VarDump as a development dependency of your project:
composer require --dev chevere/var-dump
# Global installation
To make the vd() function available globally in any PHP code, install VarDump globally:
composer global require chevere/var-dump
If not already configured, add the global Composer dependencies to your php.ini:
auto_prepend_file = ${HOME}/.composer/vendor/autoload.php
Run the following command to select and update the auto_prepend_file directive in your php.ini:
bash <(curl -sL chevere.org/bin/composer/global-prepend.sh)
You can now use VarDump in any PHP script without requiring the library for each project.
# Quick start
- Use
vdto dump information about any variable (replacesvar_dumpanddump) - Use
vddto do the same asvdanddie(0)(replacesdd)
vd($myVar); // var dump
vdd($myVar); // var dump and die
# Demo
# Features
- Provides vd (VarDump) and vdd (VarDump & die) helpers
- Colorful typed variable introspection
- Reports visibility
- Detects circular references
- Stream-based
- Writes line-by-line
- Handles really large documents
- Provides caller information
- Console document
- Colorful console output (where available)
- Plain document
- Same as console (no-color)
- Same as copy HTML text
- HTML document
- Colorful representation
- Portable (also used on xrDebug)
# Helpers
💡 TL;DR: You can replace var_dump in both CLI and HTTP context using the following helpers:
# VarDump (vd)
Function vd is a drop-in replacement for var_dump. It prints information about one or more variables to the output stream.
vd($var1, $var2,);
// more code
# VarDump and die (vdd)
Function vdd does same as vd, but with die(0) which halts further execution.
vdd($var);
// exit()
# Advanced usage
A VarDump needs a format and an output. In the example below a VarDump object is created with console colored formatting and output:
use Chevere\VarDump\Formats\ConsoleFormat;
use Chevere\VarDump\Outputs\ConsoleOutput;
use Chevere\VarDump\VarDump;
use function Chevere\VarDump\varDumpConsole;
$varDump = new VarDump(
formatter: new ConsoleFormat,
outputter: new ConsoleOutput
);
// Same as:
$varDump = varDumpConsole();
# Instance helpers
The following helper functions can be used to initialize a VarDump object.
use function Chevere\VarDump\varDumpPlain;
use function Chevere\VarDump\varDumpConsole;
use function Chevere\VarDump\varDumpHtml;
// Plain text
$varDump = varDumpPlain();
// Colored console
$varDump = varDumpConsole();
// HTML
$varDump = varDumpHtml();
The varDump helper can be used to access to the VarDumpInstance. If no instance has been created it will provide a console VarDump.
use function Chevere\VarDump\varDump;
$varDump = varDump();
# Passing variables
The method withVars is used to pass ...$variables (variadic).
$varDump = $varDump->withVars('a var', [], null);
# Shifting traces
The dump information could be affected by layers on top of VarDump, the method withShift can be used to indicate how many previous backtrace should be removed.
$varDump = $varDump->withShift(1); // removes the first trace
# Process
The method process is used to trigger the var dumping process. It requires to pass a writer where the dump information will be written.
use Chevere\Writer\StreamWriter;
use function Chevere\Writer\streamFor;
$varDump->process(
writer: new StreamWriter(
streamFor('php://stdout', 'w')
)
);
# VarDumpInstance
By initializing Chevere/VarDump/VarDumpInstance you can change the default VarDump context, which is used in vd and vdd helpers.
In the code below, varDumpHtml has been passed to configure VarDumpInstance to handle everything with HTML formatting.
use Chevere\VarDump\VarDumpInstance;
use function Chevere\VarDump\varDump;
use function Chevere\VarDump\varDumpHtml;
// Default VarDump console
$varDump = varDump();
// Set instance to VarDump Html
new VarDumpInstance(varDumpHtml());
// Instance VarDump html
$varDump = varDump();