Door
kees Schepers
op 04-12-2012 17:41
gewijzigd op 04-12-2012 17:43
4.378 views
Waar ik benieuwd naar ben; wie is hier al volop bezig met Zend Framework 2? Ik zelf stelde het best wel lang uit omdat hij nog niet stable was maar ben er van de week dan toch maar mee aan de slag gegaan.
Ik vindt de modulaire set-up (net als met de bundles in Symfony2) echt super maar werken met een service manager aka di container is wel nieuw en wennen voor mij net zoals die vele arrays configuraties.
Ik ben zelf een klein projectje gestart op Github om er eens mee te spelen en heb al doctrine2 goed geintegreerd nu. Ga er komende avonden verder mee.
Ik zit er aan te denken om een flinke tutorial te bouwen over ZF2 met Doctrine2 maar ben benieuwd wie daar in geintresseerd is of zelfs me wilt helpen? Dan plaats ik de tutorial gewoon op Github en kunnen we met pull-requests elkaar helpen :)
Ik denk dat de voordelen van Symfony2 zijn is dat het beter door ontwikkeld is omdat het al langer bestaat. Althans dat merk ik nu in ZF2 onder de loep neem, het framework is wel stable inmiddels maar veel modulen die ervoor ontwikkeld zijn nog niet of zijn nog niet eens af. Ik vraag me ook terecht af of je nu al voor ZF2 moet kiezen als je een belangrijke applicatie zou bouwen met commerciële belangen. Misschien is mijn conclusie te voorbarig en ga ik nog even verder onderzoeken / spelen.
Wat ik overigens wil doen is een boilerplate maken met Zend Framework 2 + Doctrine2 + Authentication / ZFCuser / Bootstrap. En dan maak ik daar een tutorial op. Kan nog wel eventjes duren overigens, moet me eerst nog wat meer verdiepen erin ;)
Hmm, ben gister toch even gestart met ZF2 en vindt het nog veel te onduidelijk (zeer slechte documentatie). Ik ben nu bezig de SkeletonApplication om te bouwen naar een directory structure waar ik in geloof, dat lukt aardig. Waar ik me alleen irriteer is die eindeloze array configuraties. Weet iemand toevallig een methode om dat aan te kunnen passen? De Zend\Config component heeft namelijk vele parser, Xml/JSON/PHP/Yml, maar ze gebruiken de enige optie zonder parser (dat is niet eens de PHP parser). Nu dacht ik opzoek te gaan naar de Config dependency, die aan te passen en klaar te zijn. Alleen ik kan nergens deze Config service vinden, weet iemand waar de core services staan?
Je moet dan bijvoorbeeld in de method getConfig in je module class dit doen:
pulic function getConfig() {
$config = new Zend\config\Ini('/path/naar/config.ini');
return $config->toArray();
}
Of yml, etc maar dat snap je natuurlijk wel :)
Ik moet ook eerlijk zeggen dat ik die array notaties wennen vindt. Ik ben er ook nog niet helemaal uit, misschien ga ik toch maar eens verder met Symfony. Daarnaast is ook het probleem dat Zend Framework 2 wel stabiel is maar alle handige modules die daarvoor geschreven voor zijn nog zo unstable als wat zijn. Om maar een voorbeeld te noemen: zfcAcl en zfcUser etc.
Ah bedankt, dat was best wel logisch eigenlijk... En voor de main config kan ik gewoon de front controller aanpassen.
Maar misschien moet ik niet te snel opgeven :)
Dat is ook de gedachte die ik in mijn hoofd heb. Want er zijn natuurlijk ook wel wat mooie dingen die ik de afgelopen dag heb gezien in ZF, maar helaas ook zoveel mindere dingen dat ik telkens weer wil stoppen.
[hr]
Voor de volledigheid, de code hoort te zijn:
<?php
public function getConfig()
{
$config = new \Zend\Config\Reader\Ini();
Ik ben nu 5 dagen bijna full-time met ZF2 aan de slag gegaan en heb veel ruzie met het framework gehad, maar ook wel wat mooie dingen gezien. Tijd om even mijn mening kwijt te kunnen:
Negatieve punten
Ik ben erg geschrokken van de slechte documentatie. Sommige dingen kloppen helemaal niet, er is nog maar 80% gedocumenteerd en je krijgt het framework beter onder de knie door in de eindeloze code te graven dan door de documentatie te lezen.
Het core framework is gebouwd op een manier die veel gebruik maakt van Event Dispatching en dus het Observer pattern. Nu ben ik wel een voorstander van dat pattern en vindt ik dat Symfony2 hem te weinig gebruikt, maar het zorgt er helaas ook voor dat je code erg onleesbaar wordt. Het is uren zoeken in het core framework om te vinden welke listener naar welk event luistert.
De basis ZendSkeletonApplication vindt ik zeer zwak. Ik ben daarom begonnen aan mijn eigen WjSkeletonApplication. Dat gaat gestaagd door, maar is nog lang niet klaar.
Positieve punten
Ik ben erg gecharmeerd van de EventManager module. Die is beter dan de Symfony Event Dispatcher, door dingen als targets en shared event managers.
Ook de DI module, die doormiddel van Reflection* klassen raadt welke services hij moet injecteren in de service die je aanvraagt vindt ik erg geslaagd. Het is dan weer jammer te noemen dat ZF2 dit component nauwelijks gebruikt en het ServiceManager module voor DI gebruikt en dan vindt ik weer de Symfony Service Container beter.
De Event Dispatching icm met hun goede module zorgt ook voor veel flexibiliteit. Even een nieuwe listener maken, die vastmaken aan een event op in de shared event manager en klaar ben je!
?Onbekende gebruiker
10-12-2012 20:38
Inderdaad, de documentatie had wat beter gekund. Maar qua performance is het absoluut een verbetering tov zf1
@Wouter, zojuist heb ik jouw variant bekeken van de skeleton application, ziet er goed uit, wel valt het mij op dat jouw skeleton aardig op symfony lijkt.
Persoonlijk heb ik geen probleem met de array configuratie, en om eerlijk te zijn is er weinig verschil wanneer je dit wijzigt in yml.
zojuist heb ik jouw variant bekeken van de skeleton application, ziet er goed uit, wel valt het mij op dat jouw skeleton aardig op symfony lijkt.
Persoonlijk heb ik geen probleem met de array configuratie, en om eerlijk te zijn is er weinig verschil wanneer je dit wijzigt in yml.
Klopt, dat is ook mijn bedoeling. Merk trouwens op dat ik nog volop bezig ben met mijn skeleton application.
En array configuratie vindt ik echt rampzalig, yaml vind ik veel overzichtelijker. Merk op dat je trouwens alle configuratie types kunt gebruiken die Zend_Config_Reader in zich heeft.
Wel top dat je het uitprobeert Wouter en niet direct afbrand zoals velen doen. Ik denk dat ik me wel bij jullie moet aansluiten wat documentatie betreft. Daarentegen ben ik wel goed bekend met Zend Framework1 dus misschien dat ik het daarom wat lichter neem.
Wat het performance gedeelte betreft deze zou zelfs slechter zijn als de oudere versie van Zend Framework. Er is dan wel getest met een Beta versie dus ik kan niet vertellen of de uitslagen nog kloppen: http://www.enrise.com/2012/02/zend-framework-2-performance/