phar_metadata_write.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. --TEST--
  2. Phar with metadata (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. var_dump($phar->getMetadata());
  27. $phar->setMetadata(array('my' => 'friend'));
  28. $phar->setMetadata(array('my' => 'friend'));
  29. var_dump($phar->getMetadata());
  30. $phar['a']->setMetadata(42);
  31. $phar['b']->setMetadata(NULL);
  32. $phar['c']->setMetadata(array(25, 'foo'=>'bar'));
  33. $phar['d']->setMetadata(true);
  34. foreach($files as $name => $cont) {
  35. var_dump($phar[$name]->getMetadata());
  36. }
  37. unset($phar);
  38. foreach($files as $name => $cont) {
  39. var_dump(file_get_contents($pname.'/'.$name));
  40. }
  41. ?>
  42. ===DONE===
  43. --CLEAN--
  44. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  45. --EXPECT--
  46. string(1) "a"
  47. string(1) "b"
  48. string(1) "c"
  49. string(1) "d"
  50. NULL
  51. array(1) {
  52. ["my"]=>
  53. string(6) "friend"
  54. }
  55. int(42)
  56. NULL
  57. array(2) {
  58. [0]=>
  59. int(25)
  60. ["foo"]=>
  61. string(3) "bar"
  62. }
  63. bool(true)
  64. string(1) "a"
  65. string(1) "b"
  66. string(1) "c"
  67. string(1) "d"
  68. ===DONE===