A pretty version of php var_dump. This class displays structured information about one or more expressions that includes its type and value.
Check out Dump5 for PHP 5+
You can download the Latest release version as a standalone, alternatively you can use Composer
composer require ghostff/dump7
"require": {
"ghostff/dump7": "^1.0"
}
You can simple hide or show some object attribute using a Doc block flag:
@dumpignore-inheritance |
Hides inherited class properties. |
@dumpignore-inherited-class |
Hides the class name from inherited properties. |
@dumpignore-private |
Show all properties except the private ones. |
@dumpignore-protected |
Show all properties except the protected ones. |
@dumpignore-public |
Show all properties except the public ones. |
@dumpignore |
Hide the property the Doc comment belongs to. |
/**
* @dumpignore-inheritance
* @dumpignore-inherited-class
* @dumpignore-private
* @dumpignore-public
* @dumpignore-public
*/
Class Foo extends Bar {
/** @dumpignore */
private ?BigObject $foo = null;
}
class FooBar
{
private $inherited_int = 123;
private $inherited_array = ['string'];
}
class Bar extends FooBar
{
private $inherited_float = 0.22;
private $inherited_bool = 1 == '1';
}
class Foo extends Bar
{
private $string = 'string';
protected $int = 10;
public $array = [
'foo' => 'bar'
];
protected static $bool = false;
}
$string = 'Foobar';
$array = ['foo', 'bar'];
$int = 327626;
$double = 22.223;
$null = null;
$bool = true;
$resource = fopen('LICENSE', 'r');
$m = microtime(true);
new Dump(new Foo, $string, $array, $int, $double, $null, $bool, [
'foo' => 'bar',
'bar' => 'foo',
[
'foo' => 'foobar',
'bar_foo',
2 => 'foo',
'foo' => [
'barbar' => 55,
'foofoo' => false,
'foobar' => null,
]
]
], $resource);
new Dump(1 == '1', 1 === '1');
Dump::safe(...$args); # running on terminal without color capabilities.
Replacing predefined colors:
# set($name, [$cgi_color, $cli_color]);
Dump::set('boolean', ['bb02ff', 'purple']);
By default, when Dump
is called inside a function, the call line is set to new Dump
inside the function instead of the function
call. With setTraceOffset
you can set the offset of each call line.
function dump()
{
Dump::setTraceOffset(2);
new Dump(...func_get_args()); # Dont use this test.php(line:4) as call line
}
dump('foo', 22, 'bar', true); // Use test.php(line:7) instead
CGI output:
CLI(Unix):
CLI(Window):