Add dedicated RowIteratorInterface and SheetIteratorInterface

This commit is contained in:
jmleroux 2021-11-10 20:56:09 +01:00
parent 9533accd73
commit 4c345068d8
6 changed files with 53 additions and 7 deletions

View File

@ -8,13 +8,13 @@ use Box\Spout\Common\Helper\GlobalFunctionsHelper;
use Box\Spout\Common\Manager\OptionsManagerInterface;
use Box\Spout\Reader\Common\Entity\Options;
use Box\Spout\Reader\CSV\Creator\InternalEntityFactory;
use Box\Spout\Reader\IteratorInterface;
use Box\Spout\Reader\RowIteratorInterface;
/**
* Class RowIterator
* Iterate over CSV rows.
*/
class RowIterator implements IteratorInterface
class RowIterator implements RowIteratorInterface
{
/**
* Value passed to fgetcsv. 0 means "unlimited" (slightly slower but accomodates for very long lines).

View File

@ -2,13 +2,13 @@
namespace Box\Spout\Reader\CSV;
use Box\Spout\Reader\IteratorInterface;
use Box\Spout\Reader\SheetIteratorInterface;
/**
* Class SheetIterator
* Iterate over CSV unique "sheet".
*/
class SheetIterator implements IteratorInterface
class SheetIterator implements SheetIteratorInterface
{
/** @var \Box\Spout\Reader\CSV\Sheet The CSV unique "sheet" */
protected $sheet;

View File

@ -7,6 +7,7 @@ use Box\Spout\Common\Helper\GlobalFunctionsHelper;
use Box\Spout\Common\Manager\OptionsManagerInterface;
use Box\Spout\Reader\Common\Creator\InternalEntityFactoryInterface;
use Box\Spout\Reader\Common\Entity\Options;
use Box\Spout\Reader\CSV\SheetIterator;
use Box\Spout\Reader\Exception\ReaderNotOpenedException;
/**
@ -46,7 +47,7 @@ abstract class ReaderAbstract implements ReaderInterface
/**
* Returns an iterator to iterate over sheets.
*
* @return IteratorInterface To iterate over sheets
* @return SheetIteratorInterface To iterate over sheets
*/
abstract protected function getConcreteSheetIterator();
@ -211,7 +212,7 @@ abstract class ReaderAbstract implements ReaderInterface
* Returns an iterator to iterate over sheets.
*
* @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException If called before opening the reader
* @return \Iterator To iterate over sheets
* @return SheetIteratorInterface To iterate over sheets
*/
public function getSheetIterator()
{

View File

@ -21,7 +21,7 @@ interface ReaderInterface
* Returns an iterator to iterate over sheets.
*
* @throws \Box\Spout\Reader\Exception\ReaderNotOpenedException If called before opening the reader
* @return \Iterator To iterate over sheets
* @return SheetIteratorInterface To iterate over sheets
*/
public function getSheetIterator();

View File

@ -0,0 +1,22 @@
<?php
declare(strict_types=1);
namespace Box\Spout\Reader;
use Box\Spout\Common\Entity\Row;
interface RowIteratorInterface extends IteratorInterface
{
/**
* Cleans up what was created to iterate over the object.
*
* @return void
*/
public function end();
/**
* @return Row|null
*/
public function current();
}

View File

@ -0,0 +1,23 @@
<?php
declare(strict_types=1);
namespace Box\Spout\Reader;
/**
* Interface IteratorInterface
*/
interface SheetIteratorInterface extends IteratorInterface
{
/**
* Cleans up what was created to iterate over the object.
*
* @return void
*/
public function end();
/**
* @return SheetInterface|null
*/
public function current();
}