metadata_write.phpt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. Phar with meta-data (write)
  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.php';
  14. $pname = 'phar://' . $fname;
  15. $file = "<?php __HALT_COMPILER(); ?>";
  16. $files = array();
  17. $files['a'] = array('cont' => 'a');
  18. $files['b'] = array('cont' => 'b', 'meta' => 'hi there');
  19. $files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there'));
  20. $files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar'));
  21. include 'files/phar_test.inc';
  22. foreach($files as $name => $cont) {
  23. var_dump(file_get_contents($pname.'/'.$name));
  24. }
  25. $phar = new Phar($fname);
  26. $phar['a']->setMetadata(42);
  27. $phar['b']->setMetadata(NULL);
  28. $phar['c']->setMetadata(array(25, 'foo'=>'bar'));
  29. $phar['d']->setMetadata(true);
  30. foreach($files as $name => $cont) {
  31. var_dump($phar[$name]->getMetadata());
  32. }
  33. unset($phar);
  34. foreach($files as $name => $cont) {
  35. var_dump(file_get_contents($pname.'/'.$name));
  36. }
  37. ?>
  38. ===DONE===
  39. --CLEAN--
  40. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  41. --EXPECT--
  42. string(1) "a"
  43. string(1) "b"
  44. string(1) "c"
  45. string(1) "d"
  46. int(42)
  47. NULL
  48. array(2) {
  49. [0]=>
  50. int(25)
  51. ["foo"]=>
  52. string(3) "bar"
  53. }
  54. bool(true)
  55. string(1) "a"
  56. string(1) "b"
  57. string(1) "c"
  58. string(1) "d"
  59. ===DONE===