Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 53 reacties

Vijf jaar na de release van de eerste versie is de final 2.0 van het Zend Framework uitgekomen. De architectuur van het php-framework is door de ontwikkelaar flink onder handen genomen en heeft een meer modulaire opbouw gekregen.

Zend Framework logo (60 pix)Zend Framework 2.0, een objectgeoriënteerd opensourceframework voor in php geschreven webapplicaties, beschikt in zijn nieuwe modulaire opbouw onder andere over de Module Manager. Met dit component zou het toevoegen van mvc-code eenvoudiger moet worden. Verder beloven de Service Manager en Dependency Injection het testen van php-code eenvoudiger te maken, terwijl de Event Manager volgens Zend assisteert bij het opstellen en wijzigen van complete workflows. In versie 2.0 van Zend Framework is ook een nieuwe http-stack opgenomen en diverse onderdelen zoals Mail, Form en Log, zijn onder handen genomen.

Volgens Matthew Weier O'Phinney, projectleider bij Zend, zullen ontwikkelaars die werken met Zend Framework 1.0 de nieuwe versie van het php-framework aanvankelijk uitheems vinden. Zend zal versie 1.0 echter nog 18 tot 24 maanden ondersteuning geven, maar Weier O'Phinney stelt dat php-ontwikkelaars met de nieuwe versie makkelijker applicaties kunnen bouwen en dus maar beter de overstap kunnen gaan maken.

Zend Framework 2 is voorzien van een BSD-licentie en inmiddels te downloaden. Ook is uitgebreide documentatie online gezet, evenals de mogelijkheid om het platform te testen in Phpcloud.com.

Moderatie-faq Wijzig weergave

Reacties (53)

Ik lees weinig berichten over CodeIgniter... ben zelf nu ruim 2 jaar gebruiker van dit framework en nog steeds zeer tevreden. Huidige versie staat op 2.1.2. Wat is jullie mening over dit framework?
Ik vind het ontbreken van een MVC structuur een heel hard gemis. Daarom voor mij geen optie.
MVC is geen techniek die je zomaar kan toepassen, het is een design pattern die beschrijft dat presentatie (View) gescheiden is van gedrag (Controller) en Data (Model).

Over wat nu de juiste manier is lopen de mening uiteen, de ene zegt dat een Template de View en weer iemand anders zegt dat je object moet gebruiken per View.

Sommige gaan hier zelfs zover in dat HTML structuur als objecten word aangemaakt 8)7

En ook een Model kan weer verder abstraheren in DataMapper, Resitory en ga zomaar door.

Er is dus geen kant en klaar antwoord, de technieken die Zend en Symfony gebruiken komen wel het meest in de buurt. Symfony kan templates gebruiken of objecten, deze is licht niet vast, zelfde geld voor Zend.

Het simpelste is dat je GEEN database query gaat uitvoeren in de template!

https://nl.wikipedia.org/wiki/MVC
http://www.pfz.nl/wiki/model-view-controller/
codeignitor is mvc...
Het heeft er trekjes van, maar het word niet afgedwongen. En PHP als view... in de praktijk zie je dat daar alsnog code in terecht komt die eigenlijk in een model of controller thuis hoort. Ja, je hebt gelijk. CodeIngitor ondersteund MVC, maar ik heb vele betere implementaties gezien.
Als er dus code in een view terecht komt die in een model of controller thuishoort, is dat dus de schuld van het framework? Lekker makkelijk zeg... Hou gewoon zelf je code op orde.
Nee, maar een goed framework stuurt daar wel in. CI doet dat dus niet. Maar goed, laten we deze welles-nietes discussie maar staken. Ieder z'n ding.
Waarom zou je niet een templating engine erin kunnen hangen? :o

Bij Zend kun je ook Zend_View gebruiken, maar wordt vaak niet gedaan.
Ik gebruik CodeIgniter al lange tijd, en vind juist het een uitermate handig framework.

Gewoon MVC + auto SEO + goede documentatie (is echt pre!); verder veel libraries/helpers voor de standaard functionaliteit.
In CI zijn veel zaken recht toe, recht aan; niets moet, maar alles kan en mag!

Zend heb ik geprobeerd, maar vond het destijds te omslachtig (geen idee hoe het nu is). Hoor veel of Symphony en Yii, maar nog geen behoefte gehad om over te stappen.
Denk dat het ook beetje van je persoonlijke voorkeur en ervaring met frameworks afhangt.

[Reactie gewijzigd door Camulos op 7 september 2012 00:22]

CodeIgniter heerst inderdaad de pan uit.
En ondertussen hebben velen de overstap al gemaakt naar Symfony2.
+1 als performance je lief is... Symfony en Zend zijn nu niet bepaald de vlotste frameworks te noemen...
Symfony 2 verschild in grote mate van Symfony 1.4.

Symfony 1.4 was inderdaad rampzalig wat betreft snelheid, maar Symfony 2 doet het echt goed! Zeker met de nieuwe versie 2.1 waarin veel aandacht is besteed de Form component.

Het is overigens heel gewoon mogelijk om niet het full stack framework te gebruiken maar alleen bepaalde onderdelen daarmee zelf iets te maken.
Symfony2-ontwikkeling gaat zeer vlot ja. Ik weet niet hoeveel Zend nog wordt gebruikt.

[Reactie gewijzigd door Paksoy op 6 september 2012 19:05]

Inderdaad.
Toeval of niet maar vandaag is ook Symfony 2.1 uitgekomen

Ik vrees dat Zf2 het moeilijk gaat krijgen om Sf2 bij te houden. Bij Sf2 gaat de ontwikkeling zeer snel. Het staat zelfs op plaats 13 van meest geforkte github repos.

Daarbovenop is de documentatie van Sf2 vrij goed terwijl deze van Zend2 totnogtoe vrijwel onbestaande is.
Laat ik nu toevallig vandaag begonnen zijn met de Symfony 2 tutorial. Gedurende 6 maanden met 1.4 gewerkt, merk wel dat de verschillen enorm zijn.

Hebben projecten als Zend en Symfony nog enkele overeenkomst? Werkt Zend bijvoorbeeld ook met Bundles of gebruiken ze andere (soortgelijke) technieken? Ik ken zelf Zend niet, mocht dat nog niet duidelijk zijn ;)
Inderdaad, in mijn ogen zijn hun al veel langer bezig met wat ZF 2 moest worden en hebben ze ondertussen daarin een aardige voorsprong. Lastig (op het begin) maar héérlijk framework Symfony :)
Ik maak een hoop (php) sites/apps, en heb nog steeds nog nooit een framework gebruikt..
Frameworks als Zend en Symfony lijkt oplossingen te bieden voor problemen die ik niet heb.. zoals het wiel opnieuw uitvinden en veiligheid.
Als je als team ergens aan werkt snap ik het nut, maar tot op heden heb is er nog steeds nog nooit de nood geweest om over te stappen.. Ben benieuwd of iemand me op andere gedachten kan brengen.
Je loopt hier vooral tegenaan als je in teams ontwikkeld. Ik ben liever bezig met programmeren, dan met het documenteren van mijn eigen bedachte 'framework'. Elke site heeft wel iets van een framework, ook al hangt het met touwtjes aan elkaar. Een nieuwe collega is sneller wegwijs in een framework als Yii, waar veel documentatie voor is, dan een custom build project waar misschien een paar regel documentatie inline staan.
Dit. Ik loop nu stage waar ze een soort van eigen Framework hebben ontwikkeld. Het werkt wel fijn en voor de meeste dingen is er wel een functie maar er is erg weinig documentatie beschikbaar. Je bent dus (vooral als nieuweling) erg lang bezig met het uitzoeken wat de code nou precies doet en hoe je het moet gebruiken.. moet vaak een medewerker erbij halen die het me kan uitleggen. :P

Oftewel, een framework heeft zijn voordelen hoewel je daar meestal ook echt mee moet leren werken in het begin. Daarom is een eigen framework misschien handiger omdat je precies weet wat er gebeurd. Je moet er dan echter wel voor zorgen dat je code goed gedocumenteerd is, vooral als je voor een bedrijf of met andere mensen werkt..

[Reactie gewijzigd door Nardon op 6 september 2012 20:07]

Het probleem zit dus niet in het framework maar in de documentatie. Documentatie is altijd belangrijk, met of zonder framework. Uit ervaring weet ik dat Zend Framework best goed gedocumenteerd is.
Het gebruikte framework zelf maakt ook wel een verschil los van de documentatie, want je zal van buitenaf meer mensen kunnen aantrekken die reeds ervaring hebben met ik noem een Zend, CakePHP of Symfony dan met je in-house ontwikkeld framework waarin je mensen volledig moet inwerken, plus dat je voor een groot community-gedreven platform een betere beschikbaarheid van uitbreidingen hebt zonder dat je het allemaal zelf moet schrijven en/of integreren.
Zend en Symfony lijkt oplossingen te bieden voor problemen die ik niet heb.. zoals het wiel opnieuw uitvinden en veiligheid
Grappig dat je dat noemt, terwijl een dergelijk framework juist zorgt dat je NIET ZELF het wiel opnieuw uitvindt.

Verder ook apart dat je nog nooit problemen hebt gehad met veiligheid. Denk dat dat eerder in je hoofd zit dan dat werkelijk het geval is.

Al met al zal het meer afhangen van het formaat applicaties dat je ontwikkelt. Hoe groter en uitgebreider de applicatie en het team, hoe belangrijker standaardisatie en hergebruik is. En dus hoe zinvoller een krachtig en wijd gebruikt framework wordt.
Verder ook apart dat je nog nooit problemen hebt gehad met veiligheid. Denk dat dat eerder in je hoofd zit dan dat werkelijk het geval is.
Tsja, daar kan ik verder weinig tegen inbrengen, behalve dat ik kan claimen dat ik door 15 jaar ervaring erg veel verstand heb van beveiliging.
Cross side scripting en SQL injectie is bijna altijd het probleem bij grote websites die in het nieuws komen omdat ze gehackt zijn, en een hoop van hun gebruikten Frameworks die beveilings problemen dus niet voorkomen hebben.
Grappig dat je dat noemt, terwijl een dergelijk framework juist zorgt dat je NIET ZELF het wiel opnieuw uitvindt.
Op php.net staan hele lappe code, die zo gecopy-paste kunnen worden.
In dit opzicht vind ik zelden opnieuw het wiel uit, omdat elk probleem al een keer is opgelost door iemand anders.
Lappen code copy/pasten is inderdaad een manier die veel 'programmeurs' toepassen, in veel gevallen wordt er echter ook slechte code gecopy/paste en worden er slechte tutorials en voorbeelden gebruikt... Ik maak dat helaas dagelijks mee, het antwoord van de persoon in kwestie is meestal ook gewoon 'het werkt toch...'

Of je wel of geen framework gebruikt moet je denk ik zelf weten, naar mijn idee kan echter geen enkele serieuse programmeur heen om het gebruik van een library van veel gebruikte functionaliteiten, of dat nu OO versies zijn in classes of de procedurele variant in functies... Maak eenmaal een goede oplossing voor iets en hergebruik die, pas die evt aan als de wensen worden uitgebreid, dat noem ik niet opnieuw het wiel uitvinden, code copy/pasten is meestal onkunde of lui...
Op php.net staan hele lappe code, die zo gecopy-paste kunnen worden.
In dit opzicht vind ik zelden opnieuw het wiel uit, omdat elk probleem al een keer is opgelost door iemand anders.
Wow, wow... nu is de PHP.net documentatie op zich wel ok te noemen, maar die voorbeelden in de reacties eronder die moet je echt niet in een serieuze web-app gebruiken. Vaak is het een dusdanig laag niveau dat het gewoon gevaarlijk is deze te gebruiken. Helemaal als je ze copy-paste, dan weet je dus niet waar het fout kan zijn.

Symfony2 laat externe security audits doen op hun code en halen zo security-bugs eruit die ze zelf nog niet eruit hebben gehaal. Doordat er bij Symfony2 (en vele andere frameworks) mensen pull requests in kunnen dienen kijken er uiteindelijk heel veel mensen mee in de code in tegenstelling tot de PHP.net code die door een hobbyist zonder enige ervaring erop geplaatst kan zijn die niet nadenkt over veiligheid want 'het werkt nu toch wel'.
Waarom zou het voor teams wel nut hebben en voor een individu niet? Het ligt meer aan wat voor soort apps je maakt.
Ontwikkelaars zouden eens moeten kijken naar Lithium. Uiterst licht en volledig naar 5.3 gebouwd. Lees meer...

[Reactie gewijzigd door Jeffrey v. Hees op 6 september 2012 19:10]

Lithium is erg fijn imho, maar het ORM systeem loopt nog wat achter. FuelPHP is ook een aanrader, een in mijn ogen wat completer 5.3 framework. Hoewel ik de practices en patterns in Lithium fijner vind.
FuelPHP is bij mij op het werk juist afgevallen omdat deze niet met PostgreSQL overweg kan. Verder zag het er inderdaad prima uit. Nu gaan we het project met Symfony2 maken.
Ben weer van lithium afgestapt, ik werd een beetje kriegel van de statische methodes en properties. Was ook niet helemal happy met de routeringen en de mogelijkheden om te hooken waren in mijn ogen wat beperkt. Wel lekker licht en snel verder.
Met de filters in Lithium kan je juist aan elke methode een hook hangen.
Ik ben vast een roepende in de PHP woestijn, maar sinds de overstap naar Python en Django heb ik bijna geen PHP meer aangeraakt. Gewoon goede documentatie en fatsoenlijke debug output. Elke nieuwe versie geeft eerst waarschuwingen als je code gebruikt die gaat wijzigen in de volgende versie (met aanwijzingen hoe je code aan te passen).
Met virtualenv kan je tig verschillende python configuraties naast elkaar draaien, van legacy code op Python 2.4 tot bleeding edge 3.2...op 1 server.
Ik hoor er veel goede verhalen over, maar na 1 keer proberen afgehaakt. Teveel gedoe om het werkend te krijgen. Ik ben gewend om een archive van een PHP framework uit te pakken en aan de slag te gaan. Dan is Django opeens een heel omslachtig gedoe om aan te praat te krijgen. Daar heb ik het geduld niet voor.

[Reactie gewijzigd door Faeron op 6 september 2012 21:10]

Daar heb ik het geduld niet voor.
Hoe lang duren je projecten gemiddeld? Want als de setup van een project je een dag kost, terwijl ontwikkelen met behulp van dat framework (en natuurlijk de vele tools / libs die je er nog bij kunt stoppen) een keer zo snel gaat (qua opgeleverde functionaliteit) dan is het de investering meer dan waard.
Maximaal een week. Ben helemaal thuis in het framework dat ik gekozen heb. Er is volgens mij niks mis met Django. Het is gewoon een kwestie van smaak.
vaag, opzetten van een project kost heel weinig tijd, in de orde van minuten om de infrastructuur neer te zetten en een ding te hebben waar je naar toe kan gana met je browser.

De meeste tijd gaat zitten in het bedenken van de structuur van je site, het database model en de daadwerkelijke functionaliteit. Dit zijn zaken die je bij elk framework toch ook moet doen.

En ja, verder is het een kwestie van smaak en vooral ook type klanten.
Zou je mij kunnen vertellen waar je die "goede documentatie" kunt vinden. Mijn ervaring is dat de documentatie verre van volledig is en hopeloos verouderd :(

Ik ben verder zeer te spreken over Django, maar vind het behoorlijk frustrerend dat ik telkens me een slag on de rondte moet zoeken om de meest bazale dingen voor elkaar te krijgen; er is een hoop mogelijk met Django, maar hoe mag je zelf uitvogelen.
Raar "Vlugge Japie"

Ik vind de documentatie op docs.djangoproject.com net heel goed. Netjes up to date, per versie, met zelfs work in progress dev documentatie.

Ben zelf ook wel een fan van django (en vooral python), maar neig op dit ogenblik in werkomgeving naar symfony. Dit meer omdat heel het bedrijf al php developer is, en iemand inzetten op een ander project sneller kan als de programmeertaal hetzelfste is.
Drupal 8 neemt ook verschillende symfony componenten over, wat voor ons weer een pluspunt is om sf te gebruiken.

(Sidenote: ik vind python best makkelijk om te leren, en persoonlijk een betere taal als php, maar ik werk nu éénmaal in een php gericht bedrijf ;) )
ik kan het helemaal beamen, Python is een fijne, goed gestructureerde taal en zeer goed leesbaar zonder al te veel ad-hoc functies, veel modules en uitstekende documentatie.

Maar de praktijk is anders, de klant wil PHP en krijgt PHP en dat is niet beter of slechter.
Mijn persoonlijke ervaring is echter dat het debuggen van python applicaties vele malen sneller gaat dan bij PHP applicaties.
quote: pachacuti
Inderdaad.
Toeval of niet maar vandaag is ook Symfony 2.1 uitgekomen

Ik vrees dat Zf2 het moeilijk gaat krijgen om Sf2 bij te houden. Bij Sf2 gaat de ontwikkeling zeer snel. Het staat zelfs op plaats 13 van meest geforkte github repos.

Daarbovenop is de documentatie van Sf2 vrij goed terwijl deze van Zend2 totnogtoe vrijwel onbestaande is.
Wellicht een domme vraag, maar waarom publiceert T.net wel een nieuwsbericht over het uitkomen van een nieuwe Zend versie, maar niet over het uitkomen van een nieuwe Symfony versie? Zoals hierboven gezegd wordt, is Symfony minstens zo goed gepenetreerd onder PHP gebruikers als Zend.
Ik heb al meerdere keren een request ingediend voor Symfony2 maar er verschijnt nooit een bericht over.
Ik gebruik persoonlijk Laravel. Eigenlijk nog nooit echt gehoord van deze.
Als Zend Framework je onbekend in de oren klinkt vraag ik me af of je uperhaubt wel PHP programeerd. Zend is het meest bekende PHP framework ever..
Onder een steen geleefd?

Ik gebruik yii of kohana. Vind Zend een stukje ingewikkelder en heb mezelf daarom niet de tijd gegund om het te leren. Vooral omdat Yii of Kohana ook voldoen aan de eisen die ik destijds stelde.
Afgelopen week ben ik ook begonnen met Laravel. Het eerste PHP framework is waar mee ik werk. Heb verschillende frameworks onderzocht waaronder Zend, maar Laravel kwam voor mij als beste uit de bus.

Het werkt heel goed moet ik zeggen! Erg stom dat ik er niet eerder mee ben begonnen.
Ik ga het zeker even bekijken dat Laravel maar van teksten op de hoofdwebsite als:

"ALL THE COOL KIDS ARE DOING IT"
"Enjoy the fresh air"
"It's readable and thorough. You'll love it."

Daar krijg ik altijd de kriebels van. Wat interesseert mij het dat "the cool kids" het ook gebruiken? Het komt meteen als een hoop gebakken lucht over. Dat het dat niet is zou best kunnen, maar waarom willen veel van die frameworks (niet alleen bij PHP, maar vooral JS-frameworks) zo 'super-hip' overkomen. Een framework moet gewoon werken zonder al te veel poespas en zich differentieren op een andere manier dan hip te zijn.

Even kijkende naar Laravel zie ik heel veel singletons en static class gebruik. Dan krijg ik mijn twijfels bij de modulariteit van de web-app die je wil bouwen.
't Heeft enorm lang geduurd eer ZF 2.0 er is geraakt, maar goed. Ik denk dat er nog maar weinig developers snel de overstap gaan het platform.

Er zijn fundamentele dingen gewijzigd ten opzichte van ZF 1 en dat is natuurlijk al een hele aanpassing. Zo is er een nieuwe filosofie over modules, een event manager, werkt alles nu met namespaces (welke al wel langer bestaat maar goed).

ZF 2 heeft dus een hele weg afgelegd en ik denk dat de weg even lang zal zijn voor alle developers om de switch te maken en sowieso zullen er in bedrijven nog veel meer ZF 1 applicaties gemaakt worden dan ZF 2 vermits het grootste deel van de developers nog niet echt veel ervaring met ZF 2 zal hebben.
Tja, er is vandaag ook een nieuwe versie van Umbraco uit gekomen... Maakt je daar dan ook een nieuwsbericht over??? http://umbraco.codeplex.com/releases/view/94118
Umbraco is een CMS en is dus iets heel anders dan een framework.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True