Return to metadata_write_commit.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / phar / tests / zip |
1.1 misho 1: --TEST-- 2: Phar with meta-data (write) zip-based 3: --SKIPIF-- 4: <?php 5: if (!extension_loaded("phar")) die("skip"); 6: if (version_compare(PHP_VERSION, "6.0", ">")) die("skip pre-unicode version of PHP required"); 7: ?> 8: --INI-- 9: phar.require_hash=0 10: phar.readonly=0 11: --FILE-- 12: <?php 13: $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.zip.php'; 14: $f2name = dirname(__FILE__) . '/files/metadata.phar.zip'; 15: $pname = 'phar://' . $fname; 16: $p2name = 'phar://' . $f2name; 17: 18: $file = "<?php __HALT_COMPILER(); ?>"; 19: 20: $files = array(); 21: $files['a'] = array('cont' => 'a'); 22: $files['b'] = array('cont' => 'b', 'meta' => 'hi there'); 23: $files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there')); 24: $files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar')); 25: 26: foreach($files as $name => $cont) { 27: var_dump(file_get_contents($p2name.'/'.$name)); 28: } 29: 30: copy($f2name, $fname); 31: $phar = new Phar($fname); 32: $phar->startBuffering(); 33: $phar['a']->setMetadata(42); 34: $phar['b']->setMetadata(NULL); 35: $phar['c']->setMetadata(array(25, 'foo'=>'bar')); 36: $phar['d']->setMetadata(true); 37: $phar->setMetadata('hi'); 38: 39: foreach($files as $name => $cont) { 40: var_dump($phar[$name]->getMetadata()); 41: } 42: $phar->stopBuffering(); 43: 44: unset($phar); 45: 46: $phar = new Phar($fname); 47: 48: foreach($files as $name => $cont) { 49: var_dump(file_get_contents($pname.'/'.$name)); 50: } 51: 52: foreach($files as $name => $cont) { 53: var_dump($phar[$name]->getMetadata()); 54: } 55: var_dump($phar->getMetadata()); 56: ?> 57: ===DONE=== 58: --CLEAN-- 59: <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.zip.php'); ?> 60: --EXPECT-- 61: string(1) "a" 62: string(1) "b" 63: string(1) "c" 64: string(1) "d" 65: int(42) 66: NULL 67: array(2) { 68: [0]=> 69: int(25) 70: ["foo"]=> 71: string(3) "bar" 72: } 73: bool(true) 74: string(1) "a" 75: string(1) "b" 76: string(1) "c" 77: string(1) "d" 78: int(42) 79: NULL 80: array(2) { 81: [0]=> 82: int(25) 83: ["foo"]=> 84: string(3) "bar" 85: } 86: bool(true) 87: string(2) "hi" 88: ===DONE===