CakePHP – PHP programming as Easy as Pie

Het is/was even hard doorwerken de afgelopen tijd. Voor een experiment als onderdeel van mijn promotieonderzoek moest ik een online webomgeving inrichten waarbij studenten via tags toegang krijgen tot onderdelen van opnames die gemaakt zijn met behulp van Mediasite. Dat is al een keer gebouwd voor andere systemen (Recordingbox en P2G) maar omdat mijn onderzoek plaats vindt bij Fontys en de TU/e bij waar gebruik gemaakt wordt van Mediasite, moest het ook samenwerken met die omgeving. Nou zou het op zich kunnen met behulp van de “chapter”-optie die Mediasite heeft, maar dan zitten de chapters (vind ik) wat ver weg verstopt. Ik had niet heel veel tijd om een oplossing te realiseren omdat het vak waar we het experiment willen uitvoeren nu loopt en we de tags al na de herfstvakantie (gelukkig die in het zuiden, dus een week later dan in het noorden) moeten kunnen invoeren.

Van de grond af aan een omgeving opbouwen leek een onhaalbare zaak, maar gelukkig kwam ik terecht bij CakePHP. Het is een framework voor PHP waarmee je redelijk snel web applicaties kunt opbouwen. Je begint met een datamodel die je in een database verwerkt (je maakt tabellen aan met onderlinge relaties) en op basis daarvan genereert het framework een model voor de validatie van die data (voor als je wilt wijzigen of nieuwe data toevoegen), maar je kunt ook de benodigde CRUD (Create, Read, Update, Delete) controllers laten genereren voor het bewerken van de data en de bijbehorende views voor de weergave, het wijzigen, het toevoegen en het verwijderen van die data laten aanmaken.
Gooi daar een autorisatie-schil overheen en je bent al een heel eind.

Hoewel CakePHP heel krachtig en (vind ik nu) eenvoudig is, kun je er nou ook weer niet zomaar mee aan de slag. Maar gelukkig is er hulp te vinden en ik ben dan ook heel veel dank verschuldigd aan Andrew Perk. Die heeft namelijk een serie van overzichtelijke video’s online gezet waarmee je stap voor stap door het gebruik van CakePHP geleid wordt.
Ik heb zijn CakePHP video’s even in een lijst bij elkaar gezet:

Daarnaast kun je informatie vinden in het CakePHP Cookbook en in het API overzicht. Ik maak overigens gebruik van versie 1.3 in plaats van de release candidate van versie 2.0, ik had even geen tijd om uit te zoeken of er nog issues waren met 2.0, zou op zich bij een RC niet meer mogen, maar met 1.3 werkt het op het moment ook prima.

Geen link naar het product dat ik nu gemaakt heb. Je zou er toch niet veel kunnen omdat je een TU/e account moet hebben om de video’s te bekijken. Ik zal kijken of ik t.z.t. een screencast of een uitgebreidere post met screenshots kan produceren. Nu eerst de details afronden van de applicatie, dat gaat even voor.