Go to file
Andreas Möller 51b3a9b4b2 Enhancement: Modernize build automation 2020-02-09 07:39:11 +01:00
.github Enhancement: Modernize build automation 2020-02-09 07:39:11 +01:00
src Make str_repeat call stricter 2019-09-10 17:13:45 +02:00
tests Drop support for PHP 7.0, PHP 7.1, and PHP 7.2 2020-01-21 08:57:59 +01:00
tools * Have Composer in `tools/composer` and managed through `composer self-update` 2020-01-17 13:15:49 +01:00
.gitattributes * Have Composer in `tools/composer` and managed through `composer self-update` 2020-01-17 13:15:49 +01:00
.gitignore Enhancement: Modernize build automation 2020-02-09 07:39:11 +01:00
.php_cs.dist Enhancement: Modernize build automation 2020-02-09 07:39:11 +01:00
ChangeLog.md Drop support for PHP 7.0, PHP 7.1, and PHP 7.2 2020-01-21 08:57:59 +01:00
LICENSE Bump copyright year 2020-01-17 13:12:35 +01:00
README.md Enhancement: Modernize build automation 2020-02-09 07:39:11 +01:00
build.xml * Have Composer in `tools/composer` and managed through `composer self-update` 2020-01-17 13:15:49 +01:00
composer.json Prepare release 2020-02-07 07:10:52 +01:00
phive.xml * Have Composer in `tools/composer` and managed through `composer self-update` 2020-01-17 13:15:49 +01:00
phpunit.xml Drop support for PHP 7.0, PHP 7.1, and PHP 7.2 2020-01-21 08:57:59 +01:00
psalm.xml Create Psalm configuration 2020-01-17 13:16:05 +01:00

README.md

sebastian/exporter

CI Status Type Coverage

This component provides the functionality to export PHP variables for visualization.

Installation

You can add this library as a local, per-project dependency to your project using Composer:

composer require sebastian/exporter

If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:

composer require --dev sebastian/exporter

Usage

Exporting:

<?php
use SebastianBergmann\Exporter\Exporter;

$exporter = new Exporter;

/*
Exception Object &0000000078de0f0d000000002003a261 (
    'message' => ''
    'string' => ''
    'code' => 0
    'file' => '/home/sebastianbergmann/test.php'
    'line' => 34
    'previous' => null
)
*/

print $exporter->export(new Exception);

Data Types

Exporting simple types:

<?php
use SebastianBergmann\Exporter\Exporter;

$exporter = new Exporter;

// 46
print $exporter->export(46);

// 4.0
print $exporter->export(4.0);

// 'hello, world!'
print $exporter->export('hello, world!');

// false
print $exporter->export(false);

// NAN
print $exporter->export(acos(8));

// -INF
print $exporter->export(log(0));

// null
print $exporter->export(null);

// resource(13) of type (stream)
print $exporter->export(fopen('php://stderr', 'w'));

// Binary String: 0x000102030405
print $exporter->export(chr(0) . chr(1) . chr(2) . chr(3) . chr(4) . chr(5));

Exporting complex types:

<?php
use SebastianBergmann\Exporter\Exporter;

$exporter = new Exporter;

/*
Array &0 (
    0 => Array &1 (
        0 => 1
        1 => 2
        2 => 3
    )
    1 => Array &2 (
        0 => ''
        1 => 0
        2 => false
    )
)
*/

print $exporter->export(array(array(1,2,3), array("",0,FALSE)));

/*
Array &0 (
    'self' => Array &1 (
        'self' => Array &1
    )
)
*/

$array = array();
$array['self'] = &$array;
print $exporter->export($array);

/*
stdClass Object &0000000003a66dcc0000000025e723e2 (
    'self' => stdClass Object &0000000003a66dcc0000000025e723e2
)
*/

$obj = new stdClass();
$obj->self = $obj;
print $exporter->export($obj);

Compact exports:

<?php
use SebastianBergmann\Exporter\Exporter;

$exporter = new Exporter;

// Array ()
print $exporter->shortenedExport(array());

// Array (...)
print $exporter->shortenedExport(array(1,2,3,4,5));

// stdClass Object ()
print $exporter->shortenedExport(new stdClass);

// Exception Object (...)
print $exporter->shortenedExport(new Exception);

// this\nis\na\nsuper\nlong\nstring\nt...\nspace
print $exporter->shortenedExport(
<<<LONG_STRING
this
is
a
super
long
string
that
wraps
a
lot
and
eats
up
a
lot
of
space
LONG_STRING
);