Zend vs Symfony: Hvilken er den bedste PHP Framework?
Zend og Symfony er to af de mest sammenlignede frameworks i verden. Hvilken af dem vil være den mest foretrukne med hensyn til brug og produktivitet? Hvilken af dem har et bedre fællesskab af udviklere? En stejlere indlæringskurve? Det er spørgsmål, som vil blive besvaret i denne artikel. Men før vi går ind i en dybere sammenligning, skal vi kort gennemgå begge rammer.
Zend Framework (ZF)
Zend er licenseret under New BSD-licensen og er en open source ramme for webapplikationer baseret på PHP5. Der er et standardbibliotek med en kraftfuld, men udvidelig ramme, og når det kombineres med en robust MVC-implementering med fremragende resultater, får udviklerne det, de har brug for. De kan nemt tilpasse sig deres behov og bruge rammerne som byggesten i kombination med andre rammer/applikationer.
Da det er en samling af klasser, kan du nemt indlæse de nødvendige komponenter og endda sørge for at tilføje dem som individuelle biblioteker. Du behøver ikke engang at bruge rammen som helhed, hvilket er en stor hjælp til at reducere projektmængden.
De to vigtigste aspekter, der gør, at denne ramme skiller sig ud, er akkreditering og webbaseret uddannelse. Andre bemærkelsesværdige funktioner i rammen er den nemme og komfortable drag & drop editor, kryptografiske kodningsværktøjer og evnen til at arbejde med sprog som HTML, CSS og JavaScript.
Og det er sandsynligvis også grunden til, at mange store virksomheder vælger ZF. Berømte virksomheder, der allerede bruger PHP framework, er Adobe, IBM, Microsoft og Google. Zend er også kendt for sine følgende funktioner:
- Udvidede klasser
- Testdreven udvikling
- Fremragende dokumentation for professionelle
- Objektorienteret godhed
- Manglende gennemførelse af en model
- Universel integration
- Big Community og
Symfony Framework (SF)
Som tidligere forklaret er SF, der er licenseret under MIT, også en fremragende PHP-ramme, der hjælper med at bygge websteder og webapplikationer. Da et stort fællesskab af udviklere bakker op om det, kan du forvente, at rammen vil gå flere skridt fremad i de kommende år.
Symfony har været det foretrukne valg til adskillige applikationer og forretningswebsteder i den virkelige verden. E-businesses fokuserer også på denne ramme, da det er den mest foretrukne til webudvikling. Den 3. version af Symfony er meget kraftfuld, og tilbyder fremragende konkurrence
for andre rammer. De vigtigste funktioner i Symfony omfatter:
- Routing
- Strukturerede og vedligeholdelsesvenlige koder
- Godkendelse
- Hurtig udvikling af forum
- Brug af skabeloner
- Konfiguration
- Automatisering af lignende mønstre
Hvor står de nu skulder ved skulder?
Der er et par punkter, hvor rammerne har lighedspunkter:
- 1. Begge frameworks hjælper dig med at skrive renere koder; du kan genbruge dem senere.
- 2. De følger MVC-mønsteret eller Model-View-Controller-mønsteret
Opstart
Symfony er et nemt værktøj for begyndere. Den indeholder et væld af vejledninger, og du har en fremragende opbakning fra fællesskabet med erfarne forfattere. Hvis du arbejder med SF, kan du nemt starte nye projekter fra bunden. Men ja, den bruger flere ressourcer i forhold til ZF, men forskellen er kun marginal.
Zend har støtte fra fællesskabet, men den er ikke lige så stærk som Symfony. Og selv om dokumentationen er god, er den mere egnet til professionelle brugere end begyndere.
Vinderen – Symfony
Templating-muligheder
Symfony tilbyder de bedste muligheder for templating og tilbyder caching for øjeblikkelig levering af indhold.
Zend’s templating er ikke særlig moden nok.
Vinderen – Symfony
Enhedstest
Symfony tilbyder integreret understøttelse af enhedstest.
Zend har ikke integreret understøttelse. Hver enkelt komponent i rammen skal testes med enhedstest.
Vinderen – Symfony
Hastighed
SF er meget hurtigere end ZF. Faktisk blev den konfigureret til at være meget hurtigere lige fra den første version. Symfony er ca. 3 gange hurtigere end Symfony version 1.4 og ZF version 1.10, og den bruger 2 gange mindre hukommelse.
ZF kan have en langsommelighed og hukommelsesproblemer og nogle gange dårlige DB-forespørgsler.
Vinder: Symfony
Dedikerede konferencer
Symfony har en hel del årlige konferencer og flere brugergrupper. Store virksomheder som BBC, CBS, TED, Wettercom og andre bruger denne ramme. Rammerne driver også flere open source-projekter.
Zend afholder også flere tidlige konferencer og brugergrupper ligesom de andre rammer. Flere store virksomheder og websteder bruger rammen ud over de tidligere nævnte, såsom Cisco, Discovery, Panasonic osv. ZF driver adskillige open source-projekter og også visse frameworks (eksempler er : Magento, Centurion, Webfolio, Tomato CMS, Digitalus CMS, osv.)
Vinder: Begge
Mappestruktur i rammen
Symfony giver dig mulighed for at lave kodeudklip, men disse udklip er kendt som bundles. Og disse bundles tilføjer funktionalitet til rammen, så du også kan bruge den til andre projekter. Virksomhederne har fordel af dette, fordi de kan tilføje så mange funktioner, som de ønsker.
ZF giver dig mulighed for at få en modulær struktur på dit websted. Du skal blot tilslutte og afspille kodeudsnittene. Den gode mappestruktur er også en ekstra fordel.
Vinder: Begge
Zend er også berømt for sit cache-system og understøttelse af forskellige typer backends som hukommelse eller filsystem. Du kan oprette API’er, autentificering af API’er og dokumentation af API’er ved hjælp af RPC-tjenester (Remote Procedure Call) og REST-tjenester (Representational State Transfer).
Hvis du spørger udviklere, hvilken ramme de ville vælge, vil du få forskellige svar. Det er for det meste et spørgsmål om valg, og nogle gange er det et krav fra kunden.
I tilfælde hvor du f.eks. har brug for en tilstand, hvor jQuery-anvendelse er nemmest, hjælper Zend dig ved at give dig jQuery indbygget klasse som Helper. ZendX_jQuery-klassen gør det nemt for dig at bruge jQuery. Zend er også et godt valg til at skrive din API til de fleste almindelige transaktioner på hele webstedet. ZEND tilbyder Brug af AjaxContext med Zend_Rest_Controller- og Zend_Rest_Route-klasserne.
Afsluttende tanker
Kvaliteten af de apps, der er skrevet på begge, er næsten den samme. Symfony er mere udvidelig og praktisk med hensyn til funktioner og funktionaliteter, mens ZF mangler objekt-relationel mapping (ORM) implementeret out-of-the-box. Men hvis du ønsker at spare på systemressourcerne, skal du vælge SF, da det er meget mere stabilt og bæredygtigt. På mere end én måde vinder denne ramme den
kamp.
Interessante artikler:
Sammenligning af Zend og Symfony af Grossum
Zend vs Symfony, hvilken ville du vælge til dit projekt?
Flickr.com/ Aurelijus/ Jeff
Om forfatteren: Reema arbejder som Thought Leader hos PHPBabu.