You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
2.8 KiB
172 lines
2.8 KiB
Exporter
|
|
========
|
|
|
|
[![Build Status](https://secure.travis-ci.org/sebastianbergmann/exporter.png?branch=master)](https://travis-ci.org/sebastianbergmann/exporter)
|
|
|
|
This component provides the functionality to export PHP variables for visualization.
|
|
|
|
## Usage
|
|
|
|
Exporting:
|
|
|
|
```php
|
|
<?php
|
|
use SebastianBergmann\Exporter\Exporter;
|
|
|
|
$exporter = new Exporter;
|
|
|
|
/*
|
|
Exception Object &0000000078de0f0d000000002003a261 (
|
|
'message' => ''
|
|
'string' => ''
|
|
'code' => 0
|
|
'file' => '/home/sebastianbergmann/test.php'
|
|
'line' => 34
|
|
'trace' => Array &0 ()
|
|
'previous' => null
|
|
)
|
|
*/
|
|
|
|
print $exporter->export(new Exception);
|
|
```
|
|
|
|
## Data Types
|
|
|
|
Exporting simple types:
|
|
|
|
```php
|
|
<?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
|
|
<?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
|
|
<?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
|
|
);
|
|
```
|
|
|
|
## Installation
|
|
|
|
To add Exporter as a local, per-project dependency to your project, simply add a dependency on `sebastian/exporter` to your project's `composer.json` file. Here is a minimal example of a `composer.json` file that just defines a dependency on Exporter 1.0:
|
|
|
|
{
|
|
"require": {
|
|
"sebastian/exporter": "1.0.*"
|
|
}
|
|
}
|