@@ -27,6 +27,64 @@ Before cloning, you can configure the limits with::
27
27
28
28
They will be applied when calling ``->cloneVar() `` afterwards.
29
29
30
+ Dumpers
31
+ ~~~~~~~
32
+
33
+ A dumper is responsible for outputting a string representation of a PHP variable,
34
+ using a :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ Data ` object as input.
35
+ The destination and the formatting of this output vary with dumpers.
36
+
37
+ This component comes with an :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ HtmlDumper `
38
+ for HTML output and a :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ CliDumper `
39
+ for optionally colored command line output.
40
+
41
+ For example, if you want to dump some ``$variable ``, just do::
42
+
43
+ $cloner = new VarCloner();
44
+ $dumper = new CliDumper();
45
+
46
+ $dumper->dump($cloner->cloneVar($variable));
47
+
48
+ By using the first argument of the constructor, you can select the output
49
+ stream where the dump will be written. By default, the ``CliDumper `` writes
50
+ on ``php://stdout `` and the ``HtmlDumper `` on ``php://output ``, but any PHP
51
+ stream (resource or URL) is acceptable.
52
+
53
+ Instead of a stream destination, you can also pass it a ``callable `` that
54
+ will be called repeatedly for each line generated by a dumper. This
55
+ callable can be configured using the first argument of a dumper's constructor,
56
+ but also using the
57
+ :method: `Symfony\\ Component\\ VarDumper\\ Dumper\\ AbstractDumper::setLineDumper `
58
+ method or the second argument of the
59
+ :method: `Symfony\\ Component\\ VarDumper\\ Dumper\\ AbstractDumper::dump ` method.
60
+
61
+ For example, to get a dump as a string in a variable, you can do::
62
+
63
+ $cloner = new VarCloner();
64
+ $dumper = new CliDumper();
65
+ $output = '';
66
+
67
+ $dumper->dump(
68
+ $cloner->cloneVar($variable),
69
+ function ($line, $depth) use (&$output) {
70
+ // A negative depth means "end of dump"
71
+ if ($depth >= 0) {
72
+ // Adds a two spaces indentation to the line
73
+ $output .= str_repeat(' ', $depth).$line."\n";
74
+ }
75
+ }
76
+ );
77
+
78
+ // $output is now populated with the dump representation of $variable
79
+
80
+ Dumpers implement the :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ DataDumperInterface `
81
+ interface that specifies the
82
+ :method: `dump(Data $data) <Symfony\\ Component\\ VarDumper\\ Dumper\\ DataDumperInterface::dump> `
83
+ method. They also typically implement the
84
+ :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ DumperInterface ` that frees
85
+ them from re-implementing the logic required to walk through a
86
+ :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ Data ` object's internal structure.
87
+
30
88
Casters
31
89
~~~~~~~
32
90
@@ -98,61 +156,3 @@ properties not in the class declaration).
98
156
.. note ::
99
157
Although you can, it is best advised not to alter the state of an object
100
158
while casting it in a Caster.
101
-
102
- Dumpers
103
- ~~~~~~~
104
-
105
- A dumper is responsible for outputting a string representation of a PHP variable,
106
- using a :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ Data ` object as input.
107
- The destination and the formatting of this output vary with dumpers.
108
-
109
- This component comes with an :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ HtmlDumper `
110
- for HTML output and a :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ CliDumper `
111
- for optionally colored command line output.
112
-
113
- For example, if you want to dump some ``$variable ``, just do::
114
-
115
- $cloner = new VarCloner();
116
- $dumper = new CliDumper();
117
-
118
- $dumper->dump($cloner->cloneVar($variable));
119
-
120
- By using the first argument of the constructor, you can select the output
121
- stream where the dump will be written. By default, the ``CliDumper `` writes
122
- on ``php://stdout `` and the ``HtmlDumper `` on ``php://output ``, but any PHP
123
- stream (resource or URL) is acceptable.
124
-
125
- Instead of a stream destination, you can also pass it a ``callable `` that
126
- will be called repeatedly for each line generated by a dumper. This
127
- callable can be configured using the first argument of a dumper's constructor,
128
- but also using the
129
- :method: `Symfony\\ Component\\ VarDumper\\ Dumper\\ AbstractDumper::setLineDumper `
130
- method or using the second argument of the
131
- :method: `Symfony\\ Component\\ VarDumper\\ Dumper\\ AbstractDumper::dump ` method.
132
-
133
- For example, to get a dump in a variable, you can do::
134
-
135
- $cloner = new VarCloner();
136
- $dumper = new CliDumper();
137
- $output = '';
138
-
139
- $dumper->dump(
140
- $cloner->cloneVar($variable),
141
- function ($line, $depth) use (&$output) {
142
- // A negative depth means "end of dump"
143
- if ($depth >= 0) {
144
- // Adds a two spaces indentation to the line
145
- $output .= str_repeat(' ', $depth).$line."\n";
146
- }
147
- }
148
- );
149
-
150
- // $output is now populated with the dump representation of $variable
151
-
152
- Dumpers implement the :class: `Symfony\\ Component\\ VarDumper\\ Dumper\\ DataDumperInterface `
153
- interface that specifies the
154
- :method: `dump(Data $data) <Symfony\\ Component\\ VarDumper\\ Dumper\\ DataDumperInterface::dump> `
155
- method. They also typically implement the
156
- :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ DumperInterface ` that frees
157
- them from re-implementing the logic required to walk through a
158
- :class: `Symfony\\ Component\\ VarDumper\\ Cloner\\ Data ` object's internal structure.
0 commit comments