1--TEST--
2Phar with object in metadata
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');
18include 'files/phar_test.inc';
19
20foreach($files as $name => $cont) {
21    var_dump(file_get_contents($pname.'/'.$name));
22}
23
24$phar = new Phar($fname);
25var_dump($phar->getMetadata());
26$phar->setMetadata((object) ['my' => 'friend']);
27unset($phar);
28// NOTE: Phar will use the cached value of metadata if setMetaData was called on that Phar path before.
29// Save the writes to the phar and use a different file path.
30$fname_new = "$fname.copy.php";
31copy($fname, $fname_new);
32$phar = new Phar($fname_new);
33var_dump($phar->getMetadata());
34
35?>
36--CLEAN--
37<?php
38unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php');
39unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php.copy.php');
40?>
41--EXPECT--
42string(1) "a"
43NULL
44object(stdClass)#2 (1) {
45  ["my"]=>
46  string(6) "friend"
47}
48