1--TEST-- 2Phar::buildFromIterator() iterator, 1 file passed in tar-based 3--EXTENSIONS-- 4phar 5--INI-- 6phar.require_hash=0 7phar.readonly=0 8--FILE-- 9<?php 10class myIterator implements Iterator 11{ 12 var $a; 13 function __construct(array $a) 14 { 15 $this->a = $a; 16 } 17 function next(): void { 18 echo "next\n"; 19 next($this->a); 20 } 21 function current(): mixed { 22 echo "current\n"; 23 return current($this->a); 24 } 25 function key(): mixed { 26 echo "key\n"; 27 return key($this->a); 28 } 29 function valid(): bool { 30 echo "valid\n"; 31 return current($this->a); 32 } 33 function rewind(): void { 34 echo "rewind\n"; 35 reset($this->a); 36 } 37} 38 39chdir(__DIR__); 40$phar = new Phar(__DIR__ . '/buildfromiterator4.phar.tar'); 41var_dump($phar->buildFromIterator(new myIterator(array('a' => basename(__FILE__, 'php') . 'phpt')))); 42var_dump($phar->isFileFormat(Phar::TAR)); 43?> 44--CLEAN-- 45<?php 46unlink(__DIR__ . '/buildfromiterator4.phar.tar'); 47?> 48--EXPECTF-- 49rewind 50valid 51current 52key 53next 54valid 55array(1) { 56 ["a"]=> 57 string(%d) "%sphar_buildfromiterator4.phpt" 58} 59bool(true) 60