1--TEST--
2Phar with meta-data (write)
3--SKIPIF--
4<?php
5if (!extension_loaded("phar")) die("skip");
6?>
7--INI--
8phar.require_hash=0
9phar.readonly=0
10--FILE--
11<?php
12$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
13$pname = 'phar://' . $fname;
14$file = "<?php __HALT_COMPILER(); ?>";
15
16$files = array();
17$files['a'] = array('cont' => 'a');
18$files['b'] = array('cont' => 'b', 'meta' => 'hi there');
19$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there'));
20$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar'));
21include 'files/phar_test.inc';
22
23foreach($files as $name => $cont) {
24	var_dump(file_get_contents($pname.'/'.$name));
25}
26
27$phar = new Phar($fname);
28$phar->startBuffering();
29$phar['a']->setMetadata(42);
30$phar['b']->setMetadata(NULL);
31$phar['c']->setMetadata(array(25, 'foo'=>'bar'));
32$phar['d']->setMetadata(true);
33
34foreach($files as $name => $cont) {
35	var_dump($phar[$name]->getMetadata());
36}
37$phar->stopBuffering();
38
39unset($phar);
40
41$phar = new Phar($fname);
42
43foreach($files as $name => $cont) {
44	var_dump(file_get_contents($pname.'/'.$name));
45}
46
47foreach($files as $name => $cont) {
48	var_dump($phar[$name]->getMetadata());
49}
50?>
51===DONE===
52--CLEAN--
53<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
54--EXPECT--
55string(1) "a"
56string(1) "b"
57string(1) "c"
58string(1) "d"
59int(42)
60NULL
61array(2) {
62  [0]=>
63  int(25)
64  ["foo"]=>
65  string(3) "bar"
66}
67bool(true)
68string(1) "a"
69string(1) "b"
70string(1) "c"
71string(1) "d"
72int(42)
73NULL
74array(2) {
75  [0]=>
76  int(25)
77  ["foo"]=>
78  string(3) "bar"
79}
80bool(true)
81===DONE===
82