1--TEST--
2Phar::convertToPhar() with global metadata
3--SKIPIF--
4<?php if (!extension_loaded("phar")) die("skip"); ?>
5<?php if (!extension_loaded("zlib")) die("skip"); ?>
6--INI--
7phar.require_hash=0
8phar.readonly=0
9--FILE--
10<?php
11
12$fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar';
13$fname2 = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '2.phar';
14
15$phar = new Phar($fname);
16$phar['a.txt'] = 'some text';
17$phar->setMetadata(b'hi');
18$phar->stopBuffering();
19var_dump($phar->isFileFormat(Phar::TAR));
20var_dump(strlen($phar->getStub()));
21var_dump($phar->getMetadata());
22
23$phar = $phar->convertToExecutable(Phar::TAR);
24var_dump($phar->isFileFormat(Phar::TAR));
25var_dump($phar->getStub());
26var_dump($phar->getMetadata());
27
28$phar['a'] = 'hi there';
29
30$phar = $phar->convertToExecutable(Phar::PHAR, Phar::GZ);
31var_dump($phar->isFileFormat(Phar::PHAR));
32var_dump($phar->isCompressed());
33var_dump(strlen($phar->getStub()));
34var_dump($phar->getMetadata());
35
36copy($fname . '.gz', $fname2);
37
38$phar = new Phar($fname2);
39var_dump($phar->isFileFormat(Phar::PHAR));
40var_dump($phar->isCompressed() == Phar::GZ);
41var_dump(strlen($phar->getStub()));
42var_dump($phar->getMetadata());
43
44?>
45===DONE===
46--CLEAN--
47<?php
48unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.gz');
49unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '2.phar');
50unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar');
51unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar');
52unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.tar.gz');
53__HALT_COMPILER();
54?>
55--EXPECT--
56bool(false)
57int(6673)
58string(2) "hi"
59bool(true)
60string(60) "<?php // tar-based phar archive stub file
61__HALT_COMPILER();"
62string(2) "hi"
63bool(true)
64int(4096)
65int(6673)
66string(2) "hi"
67bool(true)
68bool(true)
69int(6673)
70string(2) "hi"
71===DONE===
72