1--TEST-- 2Phar with metadata (read) 3--SKIPIF-- 4<?php 5if (!extension_loaded("phar")) die("skip"); 6?> 7--INI-- 8phar.readonly=0 9phar.require_hash=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$pmeta = 'hi there'; 18$files['a'] = array('cont' => 'a'); 19$files['b'] = array('cont' => 'b'); 20$files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); 21$files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); 22include 'files/phar_test.inc'; 23 24foreach($files as $name => $cont) { 25 var_dump(file_get_contents($pname.'/'.$name)); 26} 27 28$phar = new Phar($fname); 29var_dump($phar->hasMetaData()); 30var_dump($phar->getMetaData()); 31var_dump($phar->delMetaData()); 32var_dump($phar->getMetaData()); 33var_dump($phar->delMetaData()); 34var_dump($phar->getMetaData()); 35foreach($files as $name => $cont) { 36 echo " meta $name\n"; 37 var_dump($phar[$name]->hasMetadata()); 38 var_dump($phar[$name]->getMetadata()); 39 var_dump($phar[$name]->delMetadata()); 40 var_dump($phar[$name]->getMetadata()); 41} 42 43unset($phar); 44 45foreach($files as $name => $cont) { 46 var_dump(file_get_contents($pname.'/'.$name)); 47} 48?> 49--CLEAN-- 50<?php unlink(__DIR__ . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?> 51--EXPECT-- 52string(1) "a" 53string(1) "b" 54string(1) "c" 55string(1) "d" 56bool(true) 57string(8) "hi there" 58bool(true) 59NULL 60bool(true) 61NULL 62 meta a 63bool(false) 64NULL 65bool(true) 66NULL 67 meta b 68bool(false) 69NULL 70bool(true) 71NULL 72 meta c 73bool(true) 74array(2) { 75 [0]=> 76 string(2) "hi" 77 [1]=> 78 string(5) "there" 79} 80bool(true) 81NULL 82 meta d 83bool(true) 84array(2) { 85 ["hi"]=> 86 string(5) "there" 87 ["foo"]=> 88 string(3) "bar" 89} 90bool(true) 91NULL 92string(1) "a" 93string(1) "b" 94string(1) "c" 95string(1) "d" 96