phar_metadata_read.phpt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. --TEST--
  2. Phar with metadata (read)
  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.readonly=0
  10. phar.require_hash=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. $pmeta = 'hi there';
  18. $files['a'] = array('cont' => 'a');
  19. $files['b'] = array('cont' => 'b');
  20. $files['c'] = array('cont' => 'c', 'meta' => array('hi', 'there'));
  21. $files['d'] = array('cont' => 'd', 'meta' => array('hi'=>'there','foo'=>'bar'));
  22. include 'files/phar_test.inc';
  23. foreach($files as $name => $cont) {
  24. var_dump(file_get_contents($pname.'/'.$name));
  25. }
  26. $phar = new Phar($fname);
  27. var_dump($phar->hasMetaData());
  28. var_dump($phar->getMetaData());
  29. var_dump($phar->delMetaData());
  30. var_dump($phar->getMetaData());
  31. var_dump($phar->delMetaData());
  32. var_dump($phar->getMetaData());
  33. foreach($files as $name => $cont) {
  34. echo " meta $name\n";
  35. var_dump($phar[$name]->hasMetadata());
  36. var_dump($phar[$name]->getMetadata());
  37. var_dump($phar[$name]->delMetadata());
  38. var_dump($phar[$name]->getMetadata());
  39. }
  40. unset($phar);
  41. foreach($files as $name => $cont) {
  42. var_dump(file_get_contents($pname.'/'.$name));
  43. }
  44. ?>
  45. ===DONE===
  46. --CLEAN--
  47. <?php unlink(dirname(__FILE__) . '/' . basename(__FILE__, '.clean.php') . '.phar.php'); ?>
  48. --EXPECT--
  49. string(1) "a"
  50. string(1) "b"
  51. string(1) "c"
  52. string(1) "d"
  53. bool(true)
  54. string(8) "hi there"
  55. bool(true)
  56. NULL
  57. bool(true)
  58. NULL
  59. meta a
  60. bool(false)
  61. NULL
  62. bool(true)
  63. NULL
  64. meta b
  65. bool(false)
  66. NULL
  67. bool(true)
  68. NULL
  69. meta c
  70. bool(true)
  71. array(2) {
  72. [0]=>
  73. string(2) "hi"
  74. [1]=>
  75. string(5) "there"
  76. }
  77. bool(true)
  78. NULL
  79. meta d
  80. bool(true)
  81. array(2) {
  82. ["hi"]=>
  83. string(5) "there"
  84. ["foo"]=>
  85. string(3) "bar"
  86. }
  87. bool(true)
  88. NULL
  89. string(1) "a"
  90. string(1) "b"
  91. string(1) "c"
  92. string(1) "d"
  93. ===DONE===