metadata_write_commit.phpt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. --TEST--
  2. Phar with meta-data (write)
  3. --SKIPIF--
  4. <?php
  5. if (!extension_loaded("phar")) die("skip");
  6. ?>
  7. --INI--
  8. phar.require_hash=0
  9. phar.readonly=0
  10. --FILE--
  11. <?php
  12. $fname = dirname(__FILE__) . '/' . basename(__FILE__, '.php') . '.phar.php';
  13. $pname = 'phar://' . $fname;
  14. $file = "<?php __HALT_COMPILER(); ?>";
  15. $files = array();
  16. $files['a'] = array('cont' => 'a');
  17. $files['b'] = array('cont' => 'b', 'meta' => 'hi there');
  18. $files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there'));
  19. $files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar'));
  20. include 'files/phar_test.inc';
  21. foreach($files as $name => $cont) {
  22. var_dump(file_get_contents($pname.'/'.$name));
  23. }
  24. $phar = new Phar($fname);
  25. $phar->startBuffering();
  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. $phar->stopBuffering();
  34. unset($phar);
  35. $phar = new Phar($fname);
  36. foreach($files as $name => $cont) {
  37. var_dump(file_get_contents($pname.'/'.$name));
  38. }
  39. foreach($files as $name => $cont) {
  40. var_dump($phar[$name]->getMetadata());
  41. }
  42. ?>
  43. ===DONE===
  44. --CLEAN--
  45. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  46. --EXPECT--
  47. string(1) "a"
  48. string(1) "b"
  49. string(1) "c"
  50. string(1) "d"
  51. int(42)
  52. NULL
  53. array(2) {
  54. [0]=>
  55. int(25)
  56. ["foo"]=>
  57. string(3) "bar"
  58. }
  59. bool(true)
  60. string(1) "a"
  61. string(1) "b"
  62. string(1) "c"
  63. string(1) "d"
  64. int(42)
  65. NULL
  66. array(2) {
  67. [0]=>
  68. int(25)
  69. ["foo"]=>
  70. string(3) "bar"
  71. }
  72. bool(true)
  73. ===DONE===