Ongeveer 3 jaar geleden verwelkomde de PHP community alweer de vijfde generatie van PHP (als je PHP3 beschouwt als de eerste serieuze PHP release, dan zou je kunnen zeggen dat dit de derde major versie is).
PHP5 bracht ons een verbeterd object model, vooruitgang in performance (met name sinds PHP 5.1), een ontzettend sterke SOAP library (een webservice consumeren in 2 regels code, dat doen niet veel andere talen PHP na) en vrij veel andere verbeteringen.
Maar zoals we inmiddels allemaal weten is de uitrol van PHP5 niet vlekkeloos gegaan. Nog steeds wordt PHP4 naar verhouding te veel gebruikt. Er zijn diverse redenen aan te wijzen waarom de overgang naar PHP5 zo lang duurt, de meeste daarvan heb ik
hier al eens samengevat.
Maar er is een kentering op komst. Want we moeten verder. PHP6 staat voor de deur, en het vooruitzicht dat er straks 3 major versies in omloop zijn, baart iedereen in de PHP community zorgen.
In de community zijn er om die reden de afgelopen week 2 initiatieven in gang gezet. Op de eerste plaats is er het
GoPHP5 project. Dit project roept auteurs van PHP software op om vanaf 5 februari volgend jaar, alleen nog maar versies van hun software te releasen die in PHP5 zijn geschreven. Inmiddels heeft een groot deel van de bekendere PHP projecten zich hierbij aangesloten. Typo3, phpMyAdmin, PEAR, en PHPUnit zijn voorbeelden van projecten die alleen nog maar PHP5 ondersteunen voor versies die na 5 februari uitkomen.
PHP.net zelf heeft afgelopen vrijdag een 'end of life' announcement geplaatst op de website. Deze 'end of life' announcement houdt in dat per 31 december dit jaar, het onderhoud aan PHP4 wordt stopgezet. Vanaf dat moment worden alleen nog maar kritieke security updates gedaan, tot uiterlijk 8 augustus 2008.
Maar goed, wat betekent dit nou concreet? Dit betekent dat iedereen die zich met PHP4 bezig houdt, zich zal moeten gaan bezighouden met de migratie naar PHP5. Gelukkig zien we, zowel bij Ibuildings als bij Zend, overal al dat nieuwe projecten over het algemeen in PHP5 gedaan worden. (Er zijn nog wat uitzonderingen, maar als je nu nog een project in PHP4 start, dan doe je eigenlijk jezelf te kort).
Bestaande applicaties zijn natuurlijk een ander verhaal; aangezien voor deze applicaties de deadline feitelijk pas 8 augustus 2008 is, hebben we nog iets meer dan een jaar om dit probleem aan te pakken. Voor de relatief kleine projecten is het omschakelen naar PHP5 eigenlijk vrij eenvoudig. Er zijn een aantal standaard dingen waar je even op moet letten, maar over het algemeen is de compatibiliteit tussen de 2 versies voor dit soort applicaties groot. Wat een scenario kan zijn is, dat op het moment dat je toch een keer onderhoud moet doen aan een dergelijk project, je dan gelijk de omzetting naar PHP5 daarin meeneemt.
Voor de grotere projecten kun je er het beste even goed de tijd voor nemen. Met name testen is daarbij belangrijk. Als je gebruik hebt gemaakt van Test-Driven Development, of in ieder geval Unit Tests hebt voor de applicatie, dan heb je een voorsprong. Je kunt dan namelijk vrij snel zien of alles blijft werken als je PHP4 door PHP5 vervangt. Heb je dat niet, dan zul je wat meer tijd moeten steken in testen.
Uiteraard ben ik inmiddels voldoende commercieel ingesteld om schaamteloos te vertellen dat wij je bij zulke migratietrajecten
kunnen helpen ;-), maar je kunt er ook zelf mee aan de slag. Op php.net staat inmiddels een migratie handleiding die je als leidraad kunt nemen.
Hoe gaan wij hier als Ibuildings zelf nou mee om? Onze lopende support contracten blijven uiteraard gewoon lopen, en we blijven ondersteuning bieden voor de applicaties die nog op PHP4 draaien. Uiteraard zullen wij tussen nu en augustus 2008 in overleg met onze klanten deze applicaties gaan migreren.
Wat onze open source producten betreft,
ATK,
Achievo en
WDE ondersteunen momenteel alledrie PHP4. Onze policy bij die producten is al een tijdje dat eventuele optionele nieuwe features in PHP5 worden geschreven, maar dat de basis blijft werken in PHP4. Maar ook daar zal een moment komen waarop die band met PHP4 ons zodanig afremt dat we de knoop doorhakken en alleen nog maar PHP5 zullen ondersteunen. In nieuwere versies wel te verstaan. Als je nu een oude versie van onze producten gebruikt, dan blijft die werken zoals ie dat nu doet op PHP4 natuurlijk, alleen zullen we daar dan ook geen nieuwe functionaliteit meer aan toevoegen.
Hoe dan ook, overal in de PHP community begint het door te dringen dat de tijd rijp is. Om het mooi te zeggen zou je kunnen stellen dat PHP5 klaar is voor de wereld, en we nu nog een paar maanden de tijd hebben om de wereld klaar te stomen voor PHP5.