To make an object iterable and to make it appear like a collection of objects.
- to process a file line by line by just running over all lines (which have an object representation) for a file (which of course is an object, too)
Standard PHP Library (SPL) defines an interface Iterator which is best
suited for this! Often you would want to implement the Countable
interface too, to allow count($object)
on your iterable object
You can also find these code on GitHub
Book.php
.. literalinclude:: Book.php :language: php :linenos:
BookList.php
.. literalinclude:: BookList.php :language: php :linenos:
BookListIterator.php
.. literalinclude:: BookListIterator.php :language: php :linenos:
BookListReverseIterator.php
.. literalinclude:: BookListReverseIterator.php :language: php :linenos:
Tests/IteratorTest.php
.. literalinclude:: Tests/IteratorTest.php :language: php :linenos: