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