Liefde op het eerste gezicht...

Door Addow op vrijdag 13 augustus 2010 11:55 - Reacties (22)
Categorie: PHP/Web, Views: 18.236

Vele web developers zullen het al wel meegemaakt hebben of weten waarover ik spreek als ik zeg dat ik op een koude winteravond het licht heb gezien. Ettelijke maanden terug ergens in een klein fris bureaukamertje middenin het maagdelijk witte Kempische sneeuwlandschap ontplofte er een kookend, tam en getormenteerd brein... strings vlogen in het rond, methoden spatten op het raam, klassen mengden zich met het stof en variabelen zochten zich een weg naar buiten tussen spleten en kieren.

Ieder nieuw web project, elke nieuwe website kan je weer opnieuw beginnen aan een site structuur, je zelfgeschreven klassen- en functieverzameling aanpassen aan de nieuwe structuur, het bandwerk dat ermee gepaard gaat en geklungel van tijd tot tijd. En dan komt die dag er dat het je allemaal teveel wordt en dat je beslist om eens te onderzoeken of je jezelf veel tijd kan besparen in de toekomst. Zo ging het bij mij althans...

Wel, op zo'n moment neem je een paar weken de tijd om te bekijken wat de mogelijkheden zijn en eens in de spiegel te kijken: Ben ik lui? Heb ik geduld? Ben ik perfectionist? Halfwerk is goed werk? Zit er een tweaker in mij? In mijn geval waren er alleszins 3 mogelijkheden:
  • Geen zin in iets nieuws. Ik doe gewoon verder zoals ik bezig ben en hou wel van dat bandwerk.
  • Ik ben een die-hard en bouw mijn eigen framework? Lekker overkill, maar rendeert op langere termijn.
  • Ik kijk welk bestaand framework me op het lijf is geschreven en waar ik een relatie mee kan aangaan voor de komende jaren (zonder vreemd gaan uiteraard).
Gezien het feit dat ik graag nog door mijn vriendin bevredigd wil worden in plaats van door mijn framework, was voor mij de 3de mogelijkheid het meest voor de hand liggend (sorry voor de dubbelzinnigheid :P)

Framework, raamwerk?! Frameworks zijn al sinds enkele jaren een ware trend in de webontwikkeling, om nog maar te zwijgen over de "mijn framework is toch beter dan de anderen" hype in blogland. Maar vooral in de loop van 2006 zijn de meeste hedendaagse frameworks uit de grond gestampt en willen ze graag allemaal de meest performante, meest dynamische, lichtste of grootste zijn. Het doel van ieder framework blijft nochtans hetzelfde: het leven van programmeurs eenvoudiger maken bij het opzetten van een nieuw project, zodat ze niet telkens opnieuw dezelfde code moeten schrijven om te connecteren met een database, libraries schrijven, formulieren valideren, templates parsen, etc. In een framework zit de meeste basisfunctionaliteit al ingebakken en kan je onmiddellijk starten met het zware labeur. Een dergelijk framework stelt je dus in staat om makkelijker, sneller en ook gestructureerder een nieuwe PHP applicatie uit de grond te stampen. Alejah, makkelijker...

In mijn allereerste blogpost wil ik met name een uitgebreide beschrijving van mijn zoek- en ontdekkingstocht doorheen de rijkelijke en verzadigde wereld der PHP frameworks neerpennen door op een objectieve wijze mijn lijstje met vereisten te correleren, de voor- en nadelen af te wegen, de flexibiliteit in kaart te brengen, de leercurve in te schatten, maar vooral door de juiste 'click' te vinden. Wetende dat je in principe met eender welk gekozen framework een haat-liefde verhouding zult hebben (zelfs met een zelfgeschreven) is het een kwestie van... liefde op het eerste gezicht!

Zoals ik reeds in de inleiding heb vermeld, is mijn zoektocht begonnen toen het mij gewoon tot _HIER_ zat om telkens opnieuw op hand gemaakte CMS-systemen (Content Management System) te bouwen en aan te passen aan de behoefte van de klant, waardoor ik telkens opnieuw eerdere systemen compleet moest herwerken en bijgevolg het bandwerk trotseren. Ik wou mijn tijd liever steken in iets dat op langere termijn rendabeler kon zijn. Als jij je ooit in soortgelijke situatie bevindt, dan raad ik je aan om te beginnen met (semi)objectieve vergelijkingen te lezen. Op die manier krijg je een goed beeld welke frameworks er allemaal zijn, wat de voornaamste features en pro's en contra's van ieder framework zijn. Helaas is deze zoektocht vrij slopend en vooral ingewikkeld, wetende dat ieder graag zijn eigen framework promoot. Je zal er al snel achterkomen dat het opstellen van een lijst met vereisten en doelstellingen je zoektocht een stuk gemakkelijker maakt. De meeste frameworks hebben potentieel, maar het meeste hangt af van je eigen verwachtingen, de aard van je projecten en de wil van het beestje.

Ikzelf ben als hobbyist in het dev wereldje terecht gekomen en kan het omschrijven als een uit de hand gelopen hobby, dat zelfs tot in mijn professionele omgeving is doorgedrongen. Mijn projecten liepen uiteen van kleine statische tot vrij complexe dynamische CMS-driven websites. Ik was bijgevolg op zoek naar een performant, flexibel, jong en stabiel framework met niet al te steile leercurve, dat ik eveneens kon gebruiken voor kleinschalige professionele projecten.

Dit waren mijn voornaamste vereisten (van hoogste naar laagste prioriteit):
  • Uitstekende performantie, snelle benchmarks en stabiele omgeving
  • Niet te steile leercurve (bvb. Ruby-on-Rails)
  • Duidelijke en elegante syntax en logische structuur (aanleunend bij eigen visie)
  • Documentatie/voorbeelden/community voor support en/of problemen
  • Uitbreidbaarheid en flexibiliteit van het framework (bvb. core uitbreiden, hooks, fw updates, etc)
  • Plugins, bestaande libraries, etc.
Gedurende enkele weken ben ik aan de slag geweest met volgende frameworks:
  • Zend Framework
  • Symfony
  • CakePHP
  • Kohana
  • CodeIgniter
Het meest bekende en oudste framework is uiteraard Zend, maar er zijn nog heel wat frameworks (ze vallen immers als kolen uit de lucht), waarvan hier nog enkele van de meest voorname: Yii, KumbiaPHP, PHPDevShell, Prado, Akelos en ZooP (er zijn er nog wel enkele...)
Vergelijking Frameworks
Zend Framework
http://v4.addow.be/img/zf.png Mijn eerste poging leek me logischerwijs het meest ervaren MVC framework Zend. Bij de installatie merk je meteen al dat het een behoorlijk bombastisch framework is met heel wat mogelijkheden. Het Zend Framework is gans modulair opgebouwd en vrij makkelijk configureerbaar met behulp van de documenatie. Zend Technologies heeft het framework zodanig geconstrueerd dat het een enorme verzameling van aparte modules is, die de recentste aspecten van het hedendaagse web ondersteunen. Zo worden niet alleen de meest voorname databases (SQL Server, DB2, Oracle, MySQL, SQLite, etc), mailprotocollen (POP3, IMAP, etc) ondersteund, maar ook technologieŽn zoals RSS, SOAP, etc. kunnen handig modulair ingeladen en geconfigureerd worden. Ook authenticatie en authorisatie zitten verwerkt in het volledig object geŲrienteerd PHP5 framework. Verder biedt Zend ook de mogelijkheid om API's van third parties aan te wenden zoals Amazon, Google, Facebook, etc.

Het aanbieden van zulk een grote verscheidenheid aan modules gaat ongetwijfeld gepaard met serieus wat extra bagage om het framework te draaien. In vergelijking met de hierop volgende frameworks was Zend 'uitgepakt' dus een van de grootste blokken, zoniet het grootste. Ook in prestaties zorgt de modulaire complexiteit voor een lichte achterstand ten opzichte van andere frameworks, maar presteert toch bijzonder goed in de meeste benchmarks. Zend staat er ook om gekend om (zonder caching) databases behoorlijk wat te belasten door bijkomende 'learning' queries uit te voeren. Slechte DB configuraties of onoplettende ontwikkeling bij grotere projecten kunnen dus tot slome websites leiden.

Naar mijn gevoel heeft Zend heel wat potentieel omwille van zijn flexibiliteit en ik geloof ook waarom het zo een populair framework is: de grote community en modulaire opbouw zijn twee van Zend's grootste troeven. Komt daarbij nog het feit dat je een Zend certificaat kan behalen als je dat echt wil (handig voor je professionele carriŤre). Toch verkoos ik liever een eenvoudiger, eerder straight-forward framework, met minder 'bloat', aangezien ik niet extreem gebruik maak van veel verschillende geavanceerde web technologieŽn of protocollen binnen een en hetzelfde project.

Symfony
http://v4.addow.be/img/symfony.gif Symfony is volledig vergelijkbaar met Ruby on Rails, met dat verschil dat je geen volledig nieuwe taal moet leren (Ruby), maar gewoon in PHP kan developen. Je hebt er weliswaar allerlei tools voor nodig en de installatie loopt ook niet per se van een leien dakje. Nadat ik uiteindelijk Symfony werkend kreeg, had ik de indruk dat het wel soepel liep, al is de leercurve behoorlijk stijl. Symfony gebruikt ook zijn eigen configuratie formaat (.yml - YAML), dat moet aangeleerd worden. Heel wat interactie met je applicatie gebeurt trouwens via een console: database tabellen aanmaken, modellen opbouwen en allerhande andere zaken gebeuren commandogewijs (net zoals bij RoR). Dit resulteert normaal gezien in een snelle doorontwikkeling. Symfony heeft wel een vrij strikte Object Relationele Mapping (ORM), waardoor je minder vrij bent in je destijds aangeleerde database structuren, en het deactiveren van ORM kost je heel wat tijd (lees: teveel).

Naast de redelijke performantie, snelle ontwikkeling en vele gelijkenissen met RoR (dat al langer zichzelf bewezen heeft als vaste waarde op web applicatie niveau) heeft Symfony wel een groot nadeel: Symfony draaien op een gedeelde hosting maakt het er niet gemakkelijk op. Als je geen PEAR kan installeren of als je geen root access hebt, ben je dus aardig de klos. Eťn van de vereisten voor Symfony is dus een dedicated server, waar je vrank en vrij je ding op kan doen.

CakePHP
http://v4.addow.be/img/cakephp.gif Het volgende framework in mijn rijtje was CakePHP. Bijzonder goed gedocumenteerd, een uitgebreide community en leuke wizards zorgen ervoor dat je al snel aan de slag kunt en je eerste Hello World-applicatie heb je binnen een mum van tijd. Na enkele uurtjes bouw je al je eerste basic blog op, maar tegelijk merk je ook dat van zodra je meer geavanceerdere zaken wil forceren, het framework al minder straight-forward wordt. Zo had ik bijzonder veel problemen met de strikte structuur en naamgeving en -voorschriften. Het heeft me meermaals wat haarwerk gekost :P

CakePHP is makkelijk te installeren, snel in de basisontwikkeling en heeft bijvoorbeeld ook standaard authenticatie ingebouwd. Verder heeft het net zoals Symfony een strikte Object Relationele Mapping tussen modellen en database tabellen, waardoor je beperkt bent in vrijheid. Core FW functionaliteit of hooks gingen me ook een pak moeilijker af dan bijvoorbeeld bij CodeIgniter. Ook de benchmarks van Cake vielen me zwaar tegen, waardoor ik al vrij snel afgehaakt ben... op naar het volgende framework.

Kohana
http://v4.addow.be/img/kohana.png Mijn volgende try-out bleek het op dat moment bijzonder hippe en lichte Kohana framework, dat ontstaan is als fork van CodeIgniter met een iets beperktere en minder hulpvaardige community ten opzichte van zijn voorouder. Kohana is in tegenstelling tot CodeIgniter volledig PHP5 en object geŲrienteerd, maar kampt daartegen weer met beperkte documentatie, een magere hoeveelheid voorbeelden en nogal een 'arrogante' community (zoals het door velen wordt omschreven). Dit laatste zou in feite geen invloed mogen hebben op je beslissing dit framework al dan niet te gebruiken, aangezien de prestaties van Kohana uitstekend zijn. Kohana aanhangers beweren dat het een van de snelste PHP frameworks is, en zelfs sneller dan zijn voorouder, CodeIgniter... toch vind ik nergens in onafhankelijke benchmarks resultaten terug van Kohana die CodeIgniter in snelheid klopt. Mijn eigen gevoel zei dat CodeIgniter en Kohana enorm vergelijkbaar zijn qua ontwikkeling, snelheid en mogelijkheden. Merk wel: het geheugengebruik van Kohana ligt een pak hoger dan CodeIgniter.

Kohana leek me een jong en hip framework met veel mogelijkheden. Ideaal eigenlijk om het te verkiezen als eigen basisframework, maar uiteindelijk hebben de benchmarks de doorslag gegeven om voor CodeIgniter te opteren. Bijkomend waren de beperkte documentatie en support van Kohana een belangrijke beslissingsfactor.

CodeIgniter
http://v4.addow.be/img/codeigniter.png Het laatste framework in het rijtje van try-outs was CI. CI is enorm gemakkelijk om te installeren en in te stellen. Binnen enkele minuten heb je je eerste Hello World-applicatie reeds op het scherm, hoewel dit niet echt een voorteken is (zie CakePHP :)). CI beweert een lichtgewicht te zijn, maar dat Ūs het ook met zijn 2,2 MB foldergrootte. Met zijn bijzonder uitgebreide documentatie, voorbeelden en grote community lijkt geen enkel probleem je nog in de weg te staan. Hoewel...

CodeIgniter is net zoals voorgaande frameworks een MVC framework dat je dus toelaat om de verschillende lagen te scheiden waardoor je feilloos database interactie kan afzonderen van controle-acties en HTML kunt scheiden van PHP. CodeIgniter ondersteunt zowel PHP4 als PHP5, hoewel ik eerstgenoemde niet echt nog begrijp (PHP5 draait nu toch al enkele jaren). CodeIgniter is dus snel opgezet, laat je behoorlijk vrij in je naamgeving en hoeft niet per se ORM gebaseerd te zijn (hier bestaan wel libraries voor). Een van CI's grootste troeven is Active Record waarmee je op een alternatieve manier de communicatie met de database kan definiŽren in plaats van met ellelange queries te zitten knoeien.

Toch is CI niet allemaal rozengeur en maneschijn. Aangezien CI bijzonder leightweight is, bevat het minder out-of-the-box functionaliteiten, die je bvb. wel in andere frameworks standaard hebt (ik denk aan authenticatie, ajax, etc...). Veel van deze functionaliteiten moet je dus met behulp van plugins, libraries inbouwen en nemen dus ook hun tijd in beslag. De standaard template engine van CodeIgniter laat ook te wensen over (in feite slechts het echo'n van variabelen).

Een van de sterkste punten van CodeIgniter is veruit zijn benchmarks. Uit verschillende benchmarks blijkt CodeIgniter heel wat requests per seconde meer te halen dan de meeste anderen, terwijl het geheugengebruik beperkt blijft. Enkel Yii en Kohana lijken in de buurt te komen of in bepaalde situaties zelfs beter (Yii) te presteren dan CI.
Benchmarks
Framework benchmarks zijn er met hopen. De meeste frameworks hebben zelfs hun eigen benchmark pagina, maar onafhankelijke benchmarks vind je niet echt veel en de resultaten zijn erg uiteenlopend. Toch valt er wel een globale trend te herkennen. Sommigen beweren zelfs dat benchmarks als "nonsense" kunnen beschouwd worden omdat ieder framework getweakt kan worden: preloading of niet, caching, core libraries, etc.

Die mensen hebben in feite gelijk. Het doel van een framework blijft: het leven van de ontwikkelaar een stuk te vereenvoudigen en zijn of haar projecten een stuk schaalbaarder, flexibeler en aangenamer te maken. Uiteraard mogen we hierbij de prestaties en performantie niet uit het oog verliezen. Ik vind het kiezen van een framework vergelijkbaar met het spelen met LEGO vroeger. Je had Technic, Basic, Mindstorms, DUPLO, etc. Verschillende bouwstijlen en -niveaus om uiteindelijk hetzelfde te bereiken: uren bouw- en speelplezier! Toen lachten we mensen die met LEGO Basic spelen uit, terwijl naar analogie aanhangers van bepaalde frameworks op anderen neerkijken.

Hieronder vind je aantal websites met benchmarks: 
Mijn haat/liefde verhouding met CodeIgniter
Ondertussen ben ik reeds enkele maanden bijna voltijds met CodeIgniter aan het werken en heb ik al vele limieten van het raamwerk afgetast. Ik heb soms ook kunst- en vliegwerk moeten verrichten om bepaalde zaken te bereiken en heb het al een paar keer volledig in de prullenmand willen smijten toen ik echt geen uitweg meer zag.

Het lijkt me misschien luchtiger om mijn ervaringen, knutselwerkjes en ergernissen met CodeIgniter zelf grondig te bespreken in een volledig nieuw artikel, zodat dit schrijfsel niet helemaal "bloated" wordt. Dus een van de volgende dagen mijn ongezouten mening over CodeIgniter...
Conclusie
Met dit artikel wilde ik het in de eerste plaats bij jonge ontwikkelaars wat doen kriebelen om een framework uit te proberen, zodat ze op zoek gaan naar het framework dat het beste bij hen past. Anderzijds is dit artikel de visie van een zoveelste framework gebruiker die denkt dat zijn/haar gekozen framework beter is... not! Ik vond dit het framework dat het beste overeenkwam met mijn visies, mijn aanpak en mijn vereisten. Sowieso zal een framework je dev leven niet alleen een stuk meer structuur geven, het rendeert ook op langere termijn: sneller nieuwe projecten klaar, minder bandwerk, meer tijd met de vriendin (of equivalenten :P).

CodeIgniter, Kohana en Zend schijnen de meest performante frameworks op grootschalige basis te zijn. Met dat verschil dat CI en Kohana een pak compacter zijn, een minder steile leercurve hebben en minder out-of-the-box functionaliteiten bevatten. Zend heeft als grootste troef zijn ondersteuning voor de modernste web technologieen en modulaire aanpak. CodeIgniter en Zend hebben de grootste communities van alle frameworks, waardoor je altijd een helpende hand in de buurt hebt.

Symfony biedt je de mogelijkheden voor zeer snelle projectontwikkeling, eenmaal je een dedicated server in de buurt hebt en je de complexere installatie (t.o.v. andere frameworks) voltooid hebt. Zijn gelijkaardige RoR commandogewijze aanpak zal voor menig gebruikers enerzijds voor een steile leercurve zorgen, anderzijds voor herkenning bij RoR gebruikers. Qua prestaties zit het framework redelijk goed, maar moet toch zijn meerdere erkennen in CodeIgniter, Kohana, Yii en Zend.

CakePHP was voor mij persoonlijk het zwakkere broertje uit de vergelijkingen. Het leunde het minste aan bij mijn absolute vereisten en voelde nogal "caky" aan. Ik ben er van overtuigd dat dit een bijzonder vlot ontwikkelbaar framework is, maar wegens tegenvallende prestaties en te strikte naamgeving en structuur not my cup of cake.

En wat met een eigen framework? Wel, om eerlijk te zijn kan ik me op bepaalde punten aansluiten met bvb. een blogpost van AtleX van enkele jaren geleden. Na zijn lange zoektocht koos hij ervoor om zijn eigen framework te bouwen mbv (pseudo) namespaces. Als je vereisten of visie teveel verschillen met die van frameworks die op dit moment aangeboden worden, dan zit er niets anders op dan je eigen framework te bouwen (eventueel zelfs op basis van een open source framework). Ik heb enorm veel begrip voor gepersonaliseerde framework bouwers en de tijd die erin kruipt, maar vraag je toch altijd af: waarom zou ik het wiel opnieuw uitvinden?

Mijn zoektocht is uiteindelijk gestopt in het gezellige stationtje CodeIgniter, maar wie weet gebruik ik over een paar jaar Zend, Yii of een volledig nieuw framework? Het hangt dus veel af van vereisten, benodigdheden en gevoel. En niemand verbiedt je om de scheiding aan te vragen in de loop der jaren...

Reacties


Door Tweakers user Dooievriend, vrijdag 13 augustus 2010 12:10

:o Ken geen PHP en heb maar een buikgevoel over wat die frameworks inhouden, maar dit lijkt me een redelijk verhelderende uiteenzetting, verzorgd en vlot geschreven, en nog eens in een mooie lay-out gestoken. Voor een eerste blogpost -of moet ik zeggen uitgebreid artikel?- => _/-\o_

Door Tweakers user denyos, vrijdag 13 augustus 2010 12:12

Wow! Dat is nog eens een eerste post! Complimenten hiervoor! Erg duidelijk en prettig leesbaar artikel!

Door Tweakers user Kwastie, vrijdag 13 augustus 2010 12:12

Zelf ook altijd lang gezocht naar een mooi framwork voor PHP ben ik uitgekomen bij Symfony.

Heb je ook al eens gekeken naar een andere taal? Ben van plan om (een) volgende project met het Django framwork te schrijven.

[Reactie gewijzigd op vrijdag 13 augustus 2010 23:38]


Door Tweakers user SeatRider, vrijdag 13 augustus 2010 12:15

Vaak vraag ik mij af mij bij het lezen van een blog waarom het niet een forum post is geworden, dit leent zich volgens mij prima als een discussie over frameworks en CMSen, en bovenstaande is als startpost meer dan perfect.

Dus, waarom in blogvorm?

Door Tweakers user Addow, vrijdag 13 augustus 2010 12:24

Thx gasten! Blij met de complimenten alvast. Ik stond al enkele jaren op het punt een blog op te richten, maar ik vind dat je ook iets moet te vertellen hebben. Vandaar dat ik het ook in blogvorm publiceer.

@ Kwastie:
Heb al met Ruby on Rails gewerkt en zelfs met Java Server Pages. Maar er zijn zoveel verschillende web applicatie frameworks dat ik me in dit geval enkel gericht heb op PHP frameworks. En dan ben ik nog niet ingegaan op enkele andere (niet vermeld): dooPHP, QeePHP, etc... ze vallen echt als kolen uit de lucht.

@ Seatrider:
Hmm, heb je wel een punt. Ben zelf niet een die-hard gathering man (volg enkel bepaalde topics), maar zou een leuke discussie kunnen worden. Hoop alleen niet dat het ontaard in een zoveelste "mijn framework is beter"-topic, want daar hebben we uiteindelijk niks aan :)

Zal eens kijken waar ik dit kan droppen...

[Reactie gewijzigd op vrijdag 13 augustus 2010 12:28]


Door Tweakers user Matthew, vrijdag 13 augustus 2010 12:28

Zot! :+

Nee, erg goed geschreven is het zeker wel. Ik wil web devven! :9

Door Tweakers user zzattack, vrijdag 13 augustus 2010 12:44

Mooie blog post! Je houdt er een erg objectieve kijk op na, dat vind ik knap. Ik kan me goed vinden in je verhaal, ookal ben ik zelf geen web developer. Volgens mij zijn er nog (te) veel beginners die framework A gaan gebruiken "omdat ze daar wel eens van gehoord hebben", maar na maanden ervaring opbouwen denken ze toch liever framework B te gebruiken. Dat zal je niet zo gauw overkomen als je oriŽnteerd zoals jij hebt gedaan. Helaas heeft ook niet iedereen de mogelijkheid om zo zich uitgebreid te oriŽnteren. Zo heb ik afgelopen half jaar een project moeten doen waar we het Django framework (is dat niet iets voor jou? :P) door de strot geschoven kregen. Ik geloof niet dat er ook maar 1 projectlid is die daar gelukkig van is geworden :(
Ben benieuwd naar je volgende post!

Door Tweakers user Rubinski, vrijdag 13 augustus 2010 12:44

Wat een prachtige (eerste) blogpost. Helder geschreven, en zeer informatief.

Voordien had ik nog nooit van dit soort frameworks gehoord, maar het blijkt toch de moeite om hier eens meer over te gaan lezen.

Ik zou dan ook graag hebben dat hierover een topic op GoT geopend wordt.

Door Tweakers user -RetroX-, vrijdag 13 augustus 2010 12:49

Gast! Ik werk dagelijks met PHP en verschillende frameworks maar dit is een zeer strak artikel. Absoluut goed gedaan!

Door Tweakers user Ram0n, vrijdag 13 augustus 2010 13:19

Zeer goede eerste blog! Sterker nog: vele anderen zouden blij zijn om dit Łberhaupt eens te kunnen schrijven ;) Maar buiten de klare taal is het tevens nuttig, ik moet me ook weer eens grondig gaan verdiepen in de huidige grote frameworks en deze post is daar het perfecte begin voor. Ik had het jaren geleden al eens gedaan, maar er is inmiddels zoveel veranderd...

Door Tweakers user base_, vrijdag 13 augustus 2010 13:28

Zohee, even de belangrijkste frameworks goed vergeleken, duidelijke blogpost! Ik heb dit een tijd terug ook gedaan en ben met Symfony aan de slag gegaan, inderdaad even wennen maar wat een verademing als je er een beetje aan gewend bent. Ik hou het voorlopig even bij Symfony aangezien deze uitstekend bevalt, maar ik ben zeer benieuwd naar meningen en ervaringen van anderen over/met de verschillende frameworks. :) En voor diegenen die denken dat ze zo nodig zelf een framework moeten bouwen omdat dat dan precies doet en beter doet wat zij willen: ik vind het knap als je in je eentje of met een paar personen iets beters kan produceren als deze door een grote groep professionele developers ontwikkelde en ondersteunde frameworks! 8)7

Oja wat betreft Symfony installatie: ondersteuning voor shared hosting is behoorlijk verbeterd, belangrijkste vereiste is een recente PHP versie (>5.2.4), ontwikkelen doe je toch lokaal dus zelfs een shell toegang is dan niet noodzakelijk (maar soms wel handig)

[Reactie gewijzigd op vrijdag 13 augustus 2010 13:35]


Door Tweakers user Addow, vrijdag 13 augustus 2010 13:46

Wow, ik kan jullie alleen maar bedanken voor de positieve reacties. Ik wist niet dat de nood zů hoog was aan een objectieve en gedeeltelijke framework vergelijking. Het is vrij duidelijk dat we daar eens een deftige discussie over moeten voeren op GoT.

@zzattack:
Had nog niet van Django gehoord, snel even opgezocht en is blijkbaar Python based. Maar zoals ik al zei, het verzadigde landschap van frameworks is zo groot dat het haast onmogelijk is om het allemaal te verkennen. En deze lijst is nog niet volledig!

@base_:
De reacties over Symfony waren toen over het algemeen vrij goed. Heb zelf ook het langste getest met Symfony. Het is dan ook alleen maar positief dat ze het shared hosting aspect onder de loep hebben genomen.

[Reactie gewijzigd op vrijdag 13 augustus 2010 13:47]


Door Tweakers user kaesve, vrijdag 13 augustus 2010 14:11

wel nog even een vraagje over je vergelijkingen. heb je alleen kohana 3.xx getest of ook 2.3.x/2.4.x?

er zit best een groot verschil tussen die twee branches en ik verwacht eigenlijk ook dat 3.x uiteindelijk onder een andere naam verder zal gaan. zelf werk ik nog met 2.3 (moet nog upgraden naar 2.4) maar ik heb nog niet echt de tijd genomen 3 goed uit te proberen.

ik heb bovendien het idee dat er voor 2.3/2.4 meer documentatie aanwezig is (tenminste, wat ik van 3 had gezien was echt dramatisch). en tot nog toe heeft de KO community me eigenlijk altijd goed geholpen als ik ergens niet uit kwam.

/tevreden kohana gebruiker

Door Tweakers user !GN!T!ON, vrijdag 13 augustus 2010 17:08

Goede post!

Nog effe over Symfony (:P)

Kijk bijvoorbeeld ook eens bij Servergrove.com, Zend en Symfony ondersteuning en een geweldige support.

Ook haal je de enorme mogelijkheden en modularity van ZF aan. Hier maakt symfony handig gebruik van. Zo kan je bijvoorbeeld modules van ZF bijna direct in Symfony droppen en ermee aan de slag gaan. Dat werkt erg mooi :)

Door Tweakers user Rommel, vrijdag 13 augustus 2010 17:26

Tjonge! Ik was ook met een blogpost bezig over frameworks! :'( Goede blog! Mijn complimenten! :)

Ik heb ook heel wat frameworks getest en ik deel je conclusie! Voor mij is dat ook codeigniter geworden. Jammer (dat is eigenlijk al een te groot woord) vind ik de ontwikkeling van versie 2.0 waar ze al een tijdje mee bezig zijn. De vorige versies gingen heel wat sneller, versie 2.0 blijkt maar niet te komen.

Natuurlijk is 1.7.2 ook nog goed te gebruiken maar bij een nieuw project neig ik naar de laatste versie, als ik dan aan het ontwikkelen ben in 1.7.2 en een week later is 2.0 uit dan denk ik: Hmpf :/

Door Tweakers user RuudBurger, vrijdag 13 augustus 2010 18:43

Ik ben een paar jaar geleden met Zend begonnen (daarvoor altijd vanilla PHP icm Smarty), maar eind 2008 Yii ontdekt en vind het geweldig.
Vooral de coding stijl, opzet en gebruik van models is erg fijn. Daarnaast is Yii lekker snel, iets waar ik me bij Zend altijd aan ergerde..
De manier van code doormiddel van event en class extenden etc, was bij Zend op een of andere manier toch omslachtiger en voelde log aan.

Door Tweakers user OneOverPrime, zaterdag 14 augustus 2010 02:17

Dit is niet hoe we first-blog-posts doen hier op Tweakers. Gepast is het om een bericht van maximaal 3 regels te plaatsen waarin je even je naam noemt en dat je na het behalen van de vereiste karma toch ook maar eens hebt besloten om een tweakblog te starten. En dat je misschien, wanneer je meer tijd hebt, je hier eens wat leuks op gaat zetten. Dan wachte gij drie weken, en dan kunt u uw blog gebruiken. Wat jij hier nu hebt gepost is een toonbeeld van disrespect jegens de Tweakers.net cultuur.

Door Tweakers user mcdronkz, zaterdag 14 augustus 2010 13:23

Respect voor je post. Inhoudelijk is er weinig tot niets op aan te melden, maar over je schrijfstijl ben ik persoonlijk wat minder te spreken. Het lijkt wel alsof je voor elk woord een zo ingewikkeld mogelijk synoniem hebt gekozen, alsof je wilt pronken met je woordenschat en ingewikkelde zinsconstructies.

Dan doel ik op dit soort zinnen:
"In mijn allereerste blogpost wil ik met name een uitgebreide beschrijving van mijn zoek- en ontdekkingstocht doorheen de rijkelijke en verzadigde wereld der PHP frameworks neerpennen door op een objectieve wijze mijn lijstje met vereisten te correleren"
Het klopt taaltechnisch allemaal prima, maar het leest niet fijn. 't Heeft er wellicht ook mee te maken dat je een Belg bent, die schrijven toch net iets anders dan de meeste Nederlanders.

Als ik jou was, zou ik eens kijken naar sites die e.e.a. over 'schrijven voor het web' uitleggen. Daar kun je vaak een hoop interessante dingen uithalen waarmee je volgende blogposts nog beter worden :).

Vat het niet negatief op, ik vind dat je echt een goed artikel hebt geschreven. Toevallig past het prima in m'n straatje als PHP developer, hoewel ik binnenkort met Django (Python) ga starten. Ben benieuwd naar je volgende posts!

[Reactie gewijzigd op zaterdag 14 augustus 2010 13:25]


Door Tweakers user Addow, zaterdag 14 augustus 2010 13:49

Merci voor de respons! Ik kijk zelf ook al uit naar een nieuw blog(je)... jullie werken aanstekelijk. :)
kaesve schreef op vrijdag 13 augustus 2010 @ 14:11:
wel nog even een vraagje over je vergelijkingen. heb je alleen kohana 3.xx getest of ook 2.3.x/2.4.x?
Ik heb toen Kohana 2.3.x getest, welke minor version het was, kan ik niet meer herinneren. Kan alleen maar bevestigen dat nieuwere versies van Kohana vooral ook betere performance hebben gekregen door bepaalde libraries te optimaliseren (staat ook op paar plaatsen geschreven.

@ !GN!T!ON:
Ow, van die mogelijkheid wist ik zelfs niks. Naajz, dat je die even aanhaalt. Ik ben niet grondig genoeg geweest blijkbaar. Hoewel, ik heb altijd de deur op een kier gezet voor Symfony ;)

@ Rommel:
Excuses, wist niet er bij jou ook een schrijfsel aan 't opborrelen was. Sluit me daar volledig bij aan. Versie 2.0 takes ages. Hoewel de laatste stabiele versie uiteraard goed werkt, zitten er zelfs bugs in die niet gepatched worden. Er is duidelijk iets op tilt daar bij EllisLabs :)

@ Sillymidget:
Ik ben er vrij eerlijk over als ik zeg dat ik Yii indertijd gewoon over het hoofd heb gezien. Het was toen al in een 1.0.x versie, maar kwam daar nergens echte reviews van tegen en de community was beperkt, dus dacht ik "weer een zoveelste". Ondertussen heeft het zichzelf al wel bewezen, lijkt me en heeft het zeker zijn troeven.

OneOverPrime:
Love the irony :P Al heb ik wel niet voldoende karma, vrees ik.

@ mcdronkz:
Wel, ik kan je kritiek volledig beamen, al vind ik mezelf taaltechnisch zeker niet vrijuit gaan. Ik heb eigenlijk altijd een groot mankement gehad in mijn zinsbouw: ik wil altijd teveel in een en dezelfde zin stoppen, dan bedenk ik me en bij een herleesbeurt bedenk ik me nogmaals. Dit resulteert in van die in flarden in elkaar hangende zinnen, waar ge toch zo'n "hmm" gevoel aan overhoudt.

Sommige stukken gebruik ik inderdaad (al dan niet bewust) iets ingewikkeldere woordenschat en borstel ik de zinnen iets meer. Ik moet zeker nog wat aan mijn blogschrijfstijl werken, aangezien het duidelijk is dat ik dit nog niet echt gewoon ben. Ik ben het veelal gewoon handleidingen en documentatie te schrijven voor chirurgen, vandaar misschien dat er al eens zo'n geleerder woord tussenkruipt. Ga er zeker aan proberen werken. Thx!

Door Tweakers user mindcrash, zaterdag 14 augustus 2010 15:37

Leuke post, zo'n first post zie je hier niet zo vaak :) ... maarrrrrrr....

wellicht handig om de verschillende frameworks e.d. even van een anchor te voorzien naar de website waarop meer info over het desbetreffende framework te vinden is? :)

Door Tweakers user Jogai, zaterdag 14 augustus 2010 21:01

Mooie post. Las voor mij lekker. Ook een van de eerste blogs van meer dan 1 pagina die ik uitlees.

Door dejaivu, dinsdag 17 augustus 2010 23:46

Dit is de zoveelste artikel die ik lees over PHP Frameworks, maar ik krijg er geen genoeg van :). Leuk artikel en het leest lekker weg.

Ik heb zelf voor Cake gekozen, maar CI staat ook op mijn lijstje. Deze twee frameworks kwamen ook veelal als winnaar uit diverse reviews. Ik had toevallig nog een Cake boek liggen dus vandaar mijn keuze. Als ik uitgebakken ben, dan ga ik CI uitproberen.

Tot nu toe vind ik het wel lekker werken. Ik vind de strikte conventies juist prettig en de scaffold functie is super. Je ziet meteen of db relaties goed staan en je kunt snel wat testdata invoeren.

Ik denk dat je net als Addow gewoon de frameworks moet uitproberen en dan een kiezen die bij je past. Ik gebruik een bestaand project en probeer deze om te bouwen. Zo heb je een doel en loop je sneller tegen beperkingen aan.

Reageren is niet meer mogelijk