1--TEST-- 2Phar context 3--EXTENSIONS-- 4phar 5zlib 6--INI-- 7phar.require_hash=0 8phar.readonly=0 9--FILE-- 10<?php 11$fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php'; 12$pname = 'phar://' . $fname; 13$file = '<?php __HALT_COMPILER(); ?>'; 14 15$files = array(); 16$files['a'] = 'a'; 17$files['b'] = 'b'; 18$files['c'] = 'c'; 19 20include 'files/phar_test.inc'; 21 22$phar = new Phar($fname); 23 24var_dump(file_get_contents($pname . '/a')); 25var_dump($phar['a']->isCompressed()); 26var_dump(file_get_contents($pname . '/b')); 27var_dump($phar['b']->isCompressed()); 28var_dump(file_get_contents($pname . '/c')); 29var_dump($phar['c']->isCompressed()); 30 31$context = stream_context_create(array('phar'=> array('compress'=>Phar::GZ, 'metadata' => array(2, 'hi' => 3)))); 32$context2 = stream_context_create(array('phar' => array('metadata' => array(4)))); 33 34file_put_contents($pname . '/a', 'new a', 0); // no compression 35file_put_contents($pname . '/b', 'new b', 0, $context); 36file_put_contents($pname . '/d', 'new d', 0, $context2); 37 38$phar = new Phar($fname); 39var_dump(file_get_contents($pname . '/a')); 40var_dump($phar['a']->isCompressed()); 41var_dump($phar['a']->getMetaData()); 42var_dump(file_get_contents($pname . '/b')); 43var_dump($phar['b']->isCompressed()); 44var_dump($phar['b']->getMetaData()); 45var_dump(file_get_contents($pname . '/c')); 46var_dump($phar['c']->isCompressed()); 47var_dump($phar['c']->getMetaData()); 48var_dump(file_get_contents($pname . '/d')); 49var_dump($phar['d']->isCompressed()); 50var_dump($phar['d']->getMetaData()); 51$context2 = stream_context_create(array('phar' => array('metadata' => array(4)))); 52$fp = fopen($pname . '/b', 'r+', 0, $context2); 53fclose($fp); 54?> 55==AFTER== 56<?php 57var_dump(file_get_contents($pname . '/b')); 58var_dump($phar['b']->isCompressed()); 59var_dump($phar['b']->getMetaData()); 60?> 61--CLEAN-- 62<?php 63unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); 64?> 65--EXPECT-- 66string(1) "a" 67bool(false) 68string(1) "b" 69bool(false) 70string(1) "c" 71bool(false) 72string(5) "new a" 73bool(false) 74NULL 75string(5) "new b" 76bool(true) 77array(2) { 78 [0]=> 79 int(2) 80 ["hi"]=> 81 int(3) 82} 83string(1) "c" 84bool(false) 85NULL 86string(5) "new d" 87bool(false) 88array(1) { 89 [0]=> 90 int(4) 91} 92==AFTER== 93string(5) "new b" 94bool(true) 95array(1) { 96 [0]=> 97 int(4) 98} 99