1--TEST--
2Phar and DirectoryIterator
3--SKIPIF--
4<?php
5if (!extension_loaded("phar")) die("skip");
6?>
7--INI--
8phar.require_hash=0
9--FILE--
10<?php
11
12require_once 'files/phar_oo_test.inc';
13
14$it = new DirectoryIterator('phar://'.$fname);
15
16foreach($it as $name => $ent)
17{
18	var_dump($name);
19	var_dump($ent->getFilename());
20	var_dump($ent->isDir());
21	var_dump($ent->isDot());
22}
23
24?>
25===MANUAL===
26<?php
27
28class MyDirectoryIterator extends DirectoryIterator
29{
30	function __construct($dir)
31	{
32		echo __METHOD__ . "\n";
33		parent::__construct($dir);
34	}
35
36	function rewind()
37	{
38		echo __METHOD__ . "\n";
39		parent::rewind();
40	}
41
42	function valid()
43	{
44		echo __METHOD__ . "\n";
45		return parent::valid();
46	}
47
48	function key()
49	{
50		echo __METHOD__ . "\n";
51		return parent::key();
52	}
53
54	function current()
55	{
56		echo __METHOD__ . "\n";
57		return parent::current();
58	}
59
60	function next()
61	{
62		echo __METHOD__ . "\n";
63		parent::next();
64	}
65}
66
67$it = new MyDirectoryIterator('phar://'.$fname);
68
69foreach($it as $name => $ent)
70{
71	var_dump($name);
72	var_dump($ent->getFilename());
73}
74
75?>
76===DONE===
77--CLEAN--
78<?php
79unlink(__DIR__ . '/files/phar_oo_004.phar.php');
80__halt_compiler();
81?>
82--EXPECT--
83int(0)
84string(5) "a.php"
85bool(false)
86bool(false)
87int(1)
88string(1) "b"
89bool(true)
90bool(false)
91int(2)
92string(5) "b.php"
93bool(false)
94bool(false)
95int(3)
96string(5) "e.php"
97bool(false)
98bool(false)
99===MANUAL===
100MyDirectoryIterator::__construct
101MyDirectoryIterator::rewind
102MyDirectoryIterator::valid
103MyDirectoryIterator::current
104MyDirectoryIterator::key
105int(0)
106string(5) "a.php"
107MyDirectoryIterator::next
108MyDirectoryIterator::valid
109MyDirectoryIterator::current
110MyDirectoryIterator::key
111int(1)
112string(1) "b"
113MyDirectoryIterator::next
114MyDirectoryIterator::valid
115MyDirectoryIterator::current
116MyDirectoryIterator::key
117int(2)
118string(5) "b.php"
119MyDirectoryIterator::next
120MyDirectoryIterator::valid
121MyDirectoryIterator::current
122MyDirectoryIterator::key
123int(3)
124string(5) "e.php"
125MyDirectoryIterator::next
126MyDirectoryIterator::valid
127===DONE===
128