phar_buildfromiterator4.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. --TEST--
  2. Phar::buildFromIterator() iterator, 1 file passed in
  3. --SKIPIF--
  4. <?php if (!extension_loaded("phar")) die("skip"); ?>
  5. --INI--
  6. phar.require_hash=0
  7. phar.readonly=0
  8. --FILE--
  9. <?php
  10. class myIterator implements Iterator
  11. {
  12. var $a;
  13. function __construct(array $a)
  14. {
  15. $this->a = $a;
  16. }
  17. function next() {
  18. echo "next\n";
  19. return next($this->a);
  20. }
  21. function current() {
  22. echo "current\n";
  23. return current($this->a);
  24. }
  25. function key() {
  26. echo "key\n";
  27. return key($this->a);
  28. }
  29. function valid() {
  30. echo "valid\n";
  31. return current($this->a);
  32. }
  33. function rewind() {
  34. echo "rewind\n";
  35. return reset($this->a);
  36. }
  37. }
  38. try {
  39. chdir(dirname(__FILE__));
  40. $phar = new Phar(dirname(__FILE__) . '/buildfromiterator4.phar');
  41. var_dump($phar->buildFromIterator(new myIterator(
  42. array(
  43. 'a' => basename(__FILE__, 'php') . 'phpt',
  44. // demonstrate that none of these are added
  45. '.phar/stub.php' => basename(__FILE__, 'php') . 'phpt',
  46. '.phar/alias.txt' => basename(__FILE__, 'php') . 'phpt',
  47. '.phar/oops' => basename(__FILE__, 'php') . 'phpt',
  48. ))));
  49. } catch (Exception $e) {
  50. var_dump(get_class($e));
  51. echo $e->getMessage() . "\n";
  52. }
  53. ?>
  54. ===DONE===
  55. --CLEAN--
  56. <?php
  57. unlink(dirname(__FILE__) . '/buildfromiterator4.phar');
  58. __HALT_COMPILER();
  59. ?>
  60. --EXPECTF--
  61. rewind
  62. valid
  63. current
  64. key
  65. next
  66. valid
  67. current
  68. key
  69. next
  70. valid
  71. current
  72. key
  73. next
  74. valid
  75. current
  76. key
  77. next
  78. valid
  79. array(1) {
  80. ["a"]=>
  81. string(%d) "%sphar_buildfromiterator4.phpt"
  82. }
  83. ===DONE===