8000 [VarDumper] Added support for SplFileObject · symfony/symfony@8eaea76 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8eaea76

Browse files
committed
[VarDumper] Added support for SplFileObject
1 parent 637d623 commit 8eaea76

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

src/Symfony/Component/VarDumper/Caster/SplCaster.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@
2020
*/
2121
class SplCaster
2222
{
23+
private static $splFileObjectFlags = array(
24+
\SplFileObject::DROP_NEW_LINE => 'DROP_NEW_LINE',
25+
\SplFileObject::READ_AHEAD => 'READ_AHEAD',
26+
\SplFileObject::SKIP_EMPTY => 'SKIP_EMPTY',
27+
\SplFileObject::READ_CSV => 'READ_CSV',
28+
);
29+
2330
public static function castArrayObject(\ArrayObject $c, array $a, Stub $stub, $isNested)
2431
{
2532
$prefix = Caster::PREFIX_VIRTUAL;
@@ -104,6 +111,39 @@ public static function castSplFileInfo(\SplFileInfo $c, array $a, Stub $stub, $i
104111
);
105112
}
106113

114+
public static function castSplFileObject(\SplFileObject $c, array $a, Stub $stub, $isNested)
115+
{
116+
$prefix = Caster::PREFIX_VIRTUAL;
117+
118+
$flags = $c->getFlags();
119+
$flagsArray = array();
120+
foreach (self::$splFileObjectFlags as $value => $name) {
121+
if ($flags & $value) {
122+
$flagsArray[] = $name;
123+
}
124+
}
125+
126+
$fstat = $c->fstat();
127+
$fstat = array(
128+
'dev' => $fstat['dev'],
129+
'ino' => $fstat['ino'],
130+
'nlink' => $fstat['nlink'],
131+
'rdev' => $fstat['rdev'],
132+
'blksize' => $fstat['blksize'],
133+
'blocks' => $fstat['blocks'],
134+
'' => ''.(count($fstat) - 6),
135+
);
136+
137+
return $a + array(
138+
$prefix.'csvControl' => $c->getCsvControl(),
139+
$prefix.'flags' => new ConstStub(implode('|', $flagsArray), $flags),
140+
$prefix.'maxLineLen' => $c->getMaxLineLen(),
141+
$prefix.'fstat' => $fstat,
142+
$prefix.'eof' => $c->eof(),
143+
$prefix.'key' => $c->key(),
144+
);
145+
}
146+
107147
public static function castFixedArray(\SplFixedArray $c, array $a, Stub $stub, $isNested)
108148
{
109149
$a += array(

src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ abstract class AbstractCloner implements ClonerInterface
7979
'ArrayObject' => 'Symfony\Component\VarDumper\Caster\SplCaster::castArrayObject',
8080
'SplDoublyLinkedList' => 'Symfony\Component\VarDumper\Caster\SplCaster::castDoublyLinkedList',
8181
'SplFileInfo' => 'Symfony\Component\VarDumper\Caster\SplCaster::castSplFileInfo',
82+
'SplFileObject' => 'Symfony\Component\VarDumper\Caster\SplCaster::castSplFileObject',
8283
'SplFixedArray' => 'Symfony\Component\VarDumper\Caster\SplCaster::castFixedArray',
8384
'SplHeap' => 'Symfony\Component\VarDumper\Caster\SplCaster::castHeap',
8485
'SplObjectStorage' => 'Symfony\Component\VarDumper\Caster\SplCaster::castObjectStorage',

0 commit comments

Comments
 (0)
0