Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
10 / 10
LineIterator53
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
3 / 3
5
100.00% covered (success)
100.00%
10 / 10
 next
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 rewind
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
4 / 4
 valid
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
3 / 3
<?php
namespace Puyo\File\Iterator;
/**
 * ファイルを読み込んで1行単位で返すIterator
 *
 * php-5.5以降であればGeneratorを使った方がパフォーマンスがよい。
 * 5.5.11以降であればSplFileObjectもバイナリファイルに対応されている。
 *
 * <code>
 * $it = LineIterator53::createByPath($filepath);
 * foreach($it as $row) {
 *   // do something.
 * }
 * </code>
 * @uses >= php-5.3
 * @version 0.1.0
 */
class LineIterator53 extends FileIterator53
{
    /** @var mixed scalar */
    protected $_key = -1;
    public function next() {
        $this->_key++;
        $this->buf = fgets($this->fp);
        return $this->buf;
    }
    public function rewind() {
        $result = rewind($this->fp);
        $this->_key = -1;
        $this->next();
        return $result;
    }
    public function valid() {
        if(is_resource($this->fp) && $this->buf !== false) {
            return true;
        }
        return false;
    }
}