Uw browser is sterk verouderd. Upgrade je browser voor een betere gebruikers ervaring en veiligheid.

Artikels

Zend Framework vs. CodeIgniter: the good, the bad

Geschreven door

PHP Frameworks

Een framework laat een developer toe om sneller en makkelijker te ontwikkelen. Bekijk het als een zelfbouwpakket van Ikea vs. een omgezaagde boom waar je nog planken van moet maken. Voor de meeste mensen die actief zijn in de webdevelopment wereld klinken Zend Framework en CodeIgniter bekend in de oren. Maar ze gebruiken beide vaak dezelfde keywords: snel, stabiel, open source, community, .... Maar wat is nu het verschil tussen deze 2 grote namen en waarom is het ene beter dan het andere?

In de praktijk is dit net zoals bij javascript libraries afhankelijk van de ontwikkelaar, de ene zweert bij het Zend Framework terwijl er voor de andere niets anders bestaat dan CodeIgniter. Ik probeer vandaag deze 2 grote namen met elkaar te vergelijken voor jullie.

Zend Framework: ontstaan

Het Zend Framework is origineel onder andere geschreven door het welbekende Zend Technologies, dat de ontwikkeling van de Zend PHP Engine op zich neemt. Hiermee zijn ze gestart in 2005 toen de vraag naar goede en vooral snel op te zetten websites steeg. Omdat er toen geen oplossing voor handen was om snel een op maat gemaakte website op te zetten zijn ze zelf aan de slag gegaan.

Zend Framework: the good

Het framework heeft als eerste doel om modulair en makkelijk aanpasbaar te zijn. Het is dus vrij makkelijk om achteraf bv. een webshop module toe te voegen aan een reeds bestaande Zend Framework website. Je kunt het dus bekijken als een grote verzameling aparte modules, het framework laat de ontwikkelaar de keuze of hij gebruik maakt van bv. de MVC componenten en database interactie functionaliteit. Verder richt het ZF zich ook op een zo goed mogelijke ondersteuning van verschillende aspecten van het Internet. Zo is er standaard ondersteuning voor een breed scala aan webtechnologieen zoals email (pop3, mbox, imap) en de meest courante databases (MySQL, Oracle, MS SQL server, SQLite, ...). Ook andere handigheden zoals SOAP, RSS, PDF, Amf worden ondersteund. Tegenwoordig worden ook meer en meer mogelijkheden van bestaande websites vrijgegeven dus Zend kan ook API's van third party's aan, zo is er onder andere ondersteuning voor de meeste Google producten, OpenId en de vooral in de USA bekende Amazon schaalbare webhosting diensten. Verder is er standaard makkelijk te activeren ondersteuning voor meertalige websites, een pluspunt dus. Zoals je kunt zien is het ZF vooral een framework dat het moet hebben van de goede ondersteuning voor allerhande technologieën en modulariteit.

Zend Framework: the bad

Het ZF kan natuurlijk nooit klein zijn met zulk een ondersteuning. De gecomprimeerde download van de minimale installatie van versie 1.9.3 van het Zend Framework weegt 5,4Mb en uitgepakt komt dit neer op 27,1Mb. Op zich is dit geen probleem, webspace kost niet zoveel tegenwoordig, maar als je een ietwat uitgebreide website maakt zul je al snel een groot deel van de verschillende modules moeten inladen vooraleer de gebruiker de website op z'n scherm krijgt. Dit heeft als nadeel dat het ZF allesbehalve licht is en vrij veel geheugen zal gebruiken. Wanneer je een website op shared hosting zet en na verloop van tijd redelijk wat bezoekers krijgt, zul je merken dat de response tijd naar omhoog gaat wat de website sloom maakt. Ook kunnen er problemen ontstaan met de database wanneer je de standaard database module gebruikt en niet voldoende aandacht besteed aan de configuratie. Zend gaat per pagina die de gebruiker bekijkt bijkomende queries uitvoeren om te ontdekken hoe de database er uit ziet. Dit zorgt natuurlijk voor meer stress op de database server wat de server trager maakt en in extreme gevallen kan overbelasten. Het is natuurlijk wel mogelijk om caching te activeren of de database laag uitgebreid te configureren zodat het aantal extra queries afneemt en de website weer wat sneller gaat worden.

CodeIgniter: ontstaan

CodeIgniter is in februari 2006 gemaakt door EllisLabs, dat je misschien ook kent van ExpressionEngine. Het is een framework dat net zoals Zend Framework zeer goed onderhouden is, er komt regelmatig een nieuwe release die bugs aanpakt.

CodeIgniter: the good

Net zoals Zend is CodeIgniter een MVC framework, het laat je dus onder andere toe om de verschillende lagen te scheiden waardoor je geen html met php moet mixen. CodeIgniter staat ook bekend als lichtgewicht, en dat is het zeker als je het vergelijkt met het Zend Framework. De zipfile van CodeIgniter is 2,2Mb groot maar bevat standaard ook de user guide. Wanneer we de zip uitpakken en de user guide weglaten is de volledig uitgepakte folder 1,6Mb groot. Omdat CodeIgniter met opzet klein gehouden wordt is het ook extreem snel. Als je een ietwat uitgebreide website wil opzetten op shared hosting is het dus beter om CodeIgniter te gebruiken, het framework zelf zal de server zeer weinig belasten waardoor de reactietijd snel blijft en het geheugengebruik laag is. Nog een sterk punt van CodeIgniter is de leercurve. Een kleine website heb je redelijk snel opgezet, zelfs al is het de eerste keer dat je gebruik maakt van het framework. Dit is deels te verklaren door de beknopte configuratie en de zeer goede documentatie, CodeIgniter streeft naar een zo goed mogelijke documentatie, en dat merk je ook.

CodeIgniter: the bad

Natuurlijk is CodeIgniter niet perfect, er zijn zaken die makkelijker te maken zijn in het Zend Framework dan in CodeIgniter. Omdat CodeIgniter zo klein is, mist het ook veel out-of-the-box functionaliteiten die je in het Zend Framework wel hebt. Zo denk ik bv. aan de Zend Layout class, die toelaat om zeer snel een bestaande website een volledig nieuwe layout te geven. Dit kan uiteraard ook in CodeIgniter maar in Zend is dit net iets makkelijker met behulp van zogenaamde View Helpers. Door het afwezig zijn van geavanceerde standaard modules zul je moeten zoeken naar plugins of libraries wanneer je dingen zoals bv. SOAP gaat gebruiken. Dit heeft tot gevolg dat je het framework en de libraries up to date moet houden wat na tijdje moeilijk kan worden.

Conclusie

Zoals gezegd is de keuze van een framework een persoonlijke keuze, ik heb al uitgebreid met het Zend Framework gewerkt en begin nu CodeIgniter te verkennen. Mijn persoonlijke mening is dat je beter af bent met het Zend Framework wanneer je een website maakt die een groot publiek zal aantrekken, je een zware server hebt, een applicatie maakt die verscheidene jaren ondersteund moet worden en van verscheidene technologien gebruik gaat maken. Wanneer je echter een kleinere website moet ontwikkelen, kun je waarschijnlijk veel sneller de ontwikkeling afronden met CodeIgniter en zal je website ook veel makkelijker te hosten zijn. Natuurlijk is dit slechts een kleine vergelijking tussen 2 grote namen die beide hun diensten meermaals bewezen hebben, alles in detail bespreken zou bijna onmogelijk zijn.

Ken je nog een ander framework dat beter is dan de 2 samen of heb je toch een andere visie, laat gerust je mening achter!