phar_metadata_write.phpt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. Phar with metadata (write)
  3. --EXTENSIONS--
  4. phar
  5. --INI--
  6. phar.require_hash=0
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. $fname = __DIR__ . '/' . basename(__FILE__, '.php') . '.phar.php';
  11. $pname = 'phar://' . $fname;
  12. $file = "<?php __HALT_COMPILER(); ?>";
  13. $files = array();
  14. $files['a'] = array('cont' => 'a');
  15. $files['b'] = array('cont' => 'b', 'meta' => 'hi there');
  16. $files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there'));
  17. $files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar'));
  18. include 'files/phar_test.inc';
  19. foreach($files as $name => $cont) {
  20. var_dump(file_get_contents($pname.'/'.$name));
  21. }
  22. $phar = new Phar($fname);
  23. var_dump($phar->getMetadata());
  24. $phar->setMetadata(array('my' => 'friend'));
  25. $phar->setMetadata(array('my' => 'friend'));
  26. var_dump($phar->getMetadata());
  27. $phar['a']->setMetadata(42);
  28. $phar['b']->setMetadata(NULL);
  29. $phar['c']->setMetadata(array(25, 'foo'=>'bar'));
  30. $phar['d']->setMetadata(true);
  31. foreach($files as $name => $cont) {
  32. var_dump($phar[$name]->getMetadata());
  33. }
  34. unset($phar);
  35. foreach($files as $name => $cont) {
  36. var_dump(file_get_contents($pname.'/'.$name));
  37. }
  38. ?>
  39. --CLEAN--
  40. <?php unlink(__DIR__ . '/' . 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. NULL
  47. array(1) {
  48. ["my"]=>
  49. string(6) "friend"
  50. }
  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"