1
0
mirror of https://github.com/dg/dibi.git synced 2025-07-10 00:56:24 +02:00

DibiResult::getIterator() - removed optional $offset and $limit parameters (BC break!)

This commit is contained in:
David Grudl
2010-08-03 16:59:31 +02:00
parent 792a25d57b
commit 019f6864cf
3 changed files with 8 additions and 38 deletions

View File

@ -176,13 +176,14 @@ class DibiResult extends DibiObject implements IDataSource
/** /**
* Required by the IteratorAggregate interface. * Required by the IteratorAggregate interface.
* @param int offset
* @param int limit
* @return DibiResultIterator * @return DibiResultIterator
*/ */
final public function getIterator($offset = NULL, $limit = NULL) final public function getIterator()
{ {
return new DibiResultIterator($this, $offset, $limit); if (func_num_args()) {
trigger_error(__METHOD__ . ' arguments $offset & $limit have been dropped; use SQL clauses instead.', E_USER_WARNING);
}
return new DibiResultIterator($this);
} }

View File

@ -24,13 +24,6 @@
* unset($result); * unset($result);
* </code> * </code>
* *
* Optionally you can specify offset and limit:
* <code>
* foreach ($result->getIterator(2, 3) as $row) {
* print_r($row);
* }
* </code>
*
* @copyright Copyright (c) 2005, 2010 David Grudl * @copyright Copyright (c) 2005, 2010 David Grudl
* @package dibi * @package dibi
*/ */
@ -39,12 +32,6 @@ class DibiResultIterator implements Iterator, Countable
/** @var DibiResult */ /** @var DibiResult */
private $result; private $result;
/** @var int */
private $offset;
/** @var int */
private $limit;
/** @var int */ /** @var int */
private $row; private $row;
@ -54,14 +41,10 @@ class DibiResultIterator implements Iterator, Countable
/** /**
* @param DibiResult * @param DibiResult
* @param int offset
* @param int limit
*/ */
public function __construct(DibiResult $result, $offset = NULL, $limit = NULL) public function __construct(DibiResult $result)
{ {
$this->result = $result; $this->result = $result;
$this->offset = (int) $offset;
$this->limit = $limit === NULL ? -1 : (int) $limit;
} }
@ -73,7 +56,7 @@ class DibiResultIterator implements Iterator, Countable
public function rewind() public function rewind()
{ {
$this->pointer = 0; $this->pointer = 0;
$this->result->seek($this->offset); $this->result->seek(0);
$this->row = $this->result->fetch(); $this->row = $this->result->fetch();
} }
@ -107,7 +90,6 @@ class DibiResultIterator implements Iterator, Countable
*/ */
public function next() public function next()
{ {
//$this->result->seek($this->offset + $this->pointer + 1);
$this->row = $this->result->fetch(); $this->row = $this->result->fetch();
$this->pointer++; $this->pointer++;
} }
@ -120,7 +102,7 @@ class DibiResultIterator implements Iterator, Countable
*/ */
public function valid() public function valid()
{ {
return !empty($this->row) && ($this->limit < 0 || $this->pointer < $this->limit); return !empty($this->row);
} }

View File

@ -64,19 +64,6 @@ foreach ($res as $n => $row) {
} }
// fetch row by row with defined offset
echo "<h2>getIterator(2)</h2>\n";
foreach ($res->getIterator(2) as $n => $row) {
Debug::dump($row);
}
// fetch row by row with defined offset and limit
echo "<h2>getIterator(2, 1)</h2>\n";
foreach ($res->getIterator(2, 1) as $n => $row) {
Debug::dump($row);
}
// more complex association array // more complex association array
$res = dibi::query(' $res = dibi::query('
SELECT * SELECT *