PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

Anthony Ferrara: What Generators Can Do For You

Note: This article was originally published at PHPDeveloper on 24 July 2012.
PHPDeveloper

Anthony Ferarra has a new post looking at using generators in your code (as proposed here). He introduces the idea behind them and shows both a simple and more complex example of their use.

The concept of generators was recently proposed for addition in PHP's core (Possibly for 5.5.0). While I believe that this is a great tool, it appears that many PHP developers aren't familiar with the concept of generators. So I thought I would take a little time and explain some of how it works, and how it can be used to greatly simplify code.

He explains the concept of "generators" as an easier way to implement iterators. In his example he shows how to refactor is file handling iterator to replace it with generator functionality. It uses a new keyword, "yield", to return a Generator instance that can then can be used much like the file iterator without the need for all of the code to create the iterator itself. His more complex example shows how to replace an ArrayObject instance by a little trick inside its "getIterator" method.