Iteratorer i PHP 5
Från början var tanken att denna blogg skulle snurra på PHP 5. Jag hade hunnit så långt att allt var klart och fungerade lokalt. Det hela brast när det visar sig att mitt webbhotell inte kan uppgradera mig till PHP 5 på grund av den server jag ligger på.
Det slutade med att jag fick använda den gamla blogmotorn som körs på PHP 4. Trist, men inget som gör någon skillnad varken för mig som skribent eller dig som besökare. PHP 5 lösningen var bara så mycket trevligare rent tekniskt. En komplett MVC lösning där jag drog nytta av nyheterna i version 5 som t.ex. interface, encapsulering och nya magiska __set() och __get().
Men en av de kanske trevligaste överraskningarna var att man äntligen kunde implementera iteratorer i PHP. Ett objekt som implementerar Iterator kan man loopa över med en foreach. Det första användningsområde för iteratorer som jag såg var hanteringen av databasresultat. Klassen DBResult är ett exempel på ett objekt som tar ett result set (mysql) och gör det lite trevligare att jobba med.
Och så slutligen. Det kanske trevligaste med iteratorer. Om jag exempelvis har ett arkiv (EntryArchive) som skall returnera ett antal inlägg så kan jag göra detta on-the-fly med en iterator (som i sin tur delegerar till stora delar till DBResult) istället för att först bygga upp en array av objekt. Inlägget kommer alltså inte att skapas förrän man loopar över arkivet (t.ex. vid utskrift). Toktrevligt.
Om bara webbhotellet hade stöd för PHP 5...
Postat den 19 augusti 2008 17:01 CET. Taggat som Webbutveckling.
