Sinds een paar jaar ben ik gewoon om mijn nieuwe sites te bouwen in het Zend Framework. Ik begon daar al mee bij de Volkskrant; de belangrijkste reden is dat je in een team van developers gedwongen bent om codeerstandaarden in te voeren. Je collega’s moeten gemakkelijk en snel in jouw code kunnen kijken, zonder dat ze moeten zoeken naar de exacte locatie van een bug of feature. Overigens is het gebruik van een framework dat standaarden afdwingt niet alleen handig als je in een team werkt; ook voor solisten is het praktisch. Het is mij ten minste al vaak genoeg voorgekomen dat ik mijn eigen oude code moest nakijken en een uurtje of wat nodig had om mij de eigenaardigheden weer helemaal eigen te maken.
Waarom Zend Framework, en niet Symfony, Code Igniter of een andere? Dat is deels toeval (op zoek naar het beste framework kwam ik deze als eerste tegen), maar voor een groter deel heeft het te maken met de namen achter het framework en Zend. Per slot van rekening is dit Israëlische bedrijf de drijvende kracht achter de Zend Engine, het motortje waarop PHP nu al een flink aantal jaren draait. Je mag verwachten dat een framework dat door Zend is gebouwd, op de beste manier gebruik maakt van de programmeertaal.
Zend Framework (ZFW) is een verzameling losse componenten die je naar believen kunt inzetten in je eigen projecten. Je kunt een volledige website op het ZFW bouwen, waarin je gebruik maakt van het Model-View-Controller ontwerppatroon; of je kunt ervoor kiezen om in een simpele pagina bijvoorbeeld alleen Zend_Validate in te zetten voor het valideren van gebruikersinput.
Zend zelf beweert dat het ZFW heeft uitgevoerd met ‘extreme simpelheid en productiviteit’ in het achterhoofd. Dat is reclame-bullshit. Althans, wat betreft de simpelheid. Vergis je niet, ZFW is niet eenvoudig. Het kost tijd om je erin te verdiepen, en alle hoeken en gaten te leren kennen. Maar die investering betaalt zich dubbel en dwars terug. Als je eenmaal die initiële horden hebt genomen, dan is het werken met het ZFW een genot, en word je wel degelijk productiever. Je hergebruikt de standaard objecten die Zend maakt, maar ook die je zelf hebt opgebouwd of die je hebt gedownload van het internet. Een login-systeem, een webservice, een zoeksysteem, navigatie, sjablonen – uiteindelijk wordt het bouwen van een website niet veel meer dan het opzoeken van de juiste objecten en die in een nieuwe samenstelling met elkaar laten samenwerken.
Er is bij mijn weten geen goede Nederlandstalige tutorialsite voor het ZFW. In dit blog hoop ik enigszins in deze leemte te kunnen voorzien. We gaan een nieuwe applicatie bouwen waarin we gebruik maken van alle snufjes die ZFW, maar ook webservices als Flickr, Google, Amazon en anderen ons te bieden hebben. Het wordt een applicatie gericht op product reviews van e-readers en elektronische boeken, gekoppeld aan een blogging systeem. Tijdens de bouw komen we in aanraking met alle belangrijke componenten van ZFW, en leren we hoe we die het beste met elkaar kunnen laten samenwerken.
Voorkennis: je hoeft niks te weten van Zend, maar wel is het handig als je enigszins thuis bent in het object-georiënteerd programmeren in PHP5. Ook moet je weten hoe je een lokale server aan de praat krijgt en houdt, zodat je een ontwikkelomgeving tot je beschikking hebt waarin je naar hartelust kunt experimenteren. In de komende eerste aflevering komen we te praten over hoe die server ingericht moet worden.
Ik hoop dat je regelmatig terugkomt op dit blog om met me mee te bouwen en de voortgang te volgen. Ben benieuwd naar jullie commentaren en suggesties – laat het alsjeblieft weten als je bijzondere vragen hebt.
Veel plezier!