Vergelijkende evaluatie van buitenlandse mainstream PHP Framework



Recent gebruikte een eenvoudige vergelijking van de stroom in het land met meer dan een paar grote buitenlandse PHP framework (niet met inbegrip van binnenlandse kader), is er een algemeen kader voor deze intuïtieve gevoelens, eenvoudig te delen, voor de selectie van het kader van wat te doen wanneergelijk als een referentie.

De voornaamste referentiekader omvatten: CodeIgniter, CakePHP, ZendFramework, Symfony.Ik weet niet serieus gebruiken veel van het kader, gewoon proberen een beetje onvolwassen, of kan een veel adviezen verkeerd is, gelieve mij te corrigeren, om samen te groeien.

CodeIgniter

Voordelen:

1. Configuratie eenvoudig, alle geconfigureerde om PHP script te gebruiken om te configureren, met hoog rendement uit te voeren; met elementaire routing mogelijkheden om de route op zekere hoogte, een voorlopige lay-out functie, in staat om een zekere mate van 'look and feel te produceren; database laag van een goed pakketmet de basisfunctie van MVC

. 2 Snel aan de eenvoudige kleine code om high-performance uit te voeren, het kader is simpel, makkelijk te gebruiken, te bestuderen, lage kosten, tot in detail, wordt geleverd met een heleboel makkelijke naar de bibliotheek, het kader voor kleine toepassingen

Nadelen:

1. De model laag geïnterpreteerd als een eenvoudige database operaties

2. Framework ietwat simpele, kleine applicaties kunnen alleen worden voldaan, een beetje minder goed in staat om de behoeften van middelgrote toepassingen voldoen

Waardering:

Het algemeen, de te nemen om een snelle en gemakkelijke CodeIgniter aanvraag volledig is nog steeds de moeite waard om een zekere mate van lay-out construct, eenvoudig sjabloon hergebruik, data manipulatie laag is een goed pakket, en CodeIgniter gebruikt niet veel design patterns zijn te complex om te voerenprestaties en de code leesbaarheid zijn goed.Als voor de extra bibliotheek is ook goed, eenvoudig en efficiënt.

CakePHP

Voordelen:

1. CakePHP is het meest vergelijkbaar met de RoR kader, met inbegrip van het ontwerp-modus Active Record database bediening betekent; design niveau is zeer elegant, niet zelf voor extra bibliotheek, alle functies zijn puur kader van de efficiency is niet slecht; database laagDe hasOne, hasMany functie is zeer krachtig, meer geschikt voor complexe bedrijfsprocessen; routing, de configuratie is niet slecht, automatisch te bouwen steiger (steiger) is zeer sterk, geschikt voor middelgrote toepassingen; de fundamentele realisatie van de MVC over elke laag; met automatische bediening command-linescripting;

2. Vergelijking van het hele document, om meer succes te bevorderen in het land, de meeste van hen weten dat CakePHP, leren kosten matige

Nadelen:

1. CakePHP zeer ernstig probleem te worden opgevat als de database laag Model operatie serieus heeft de mogelijkheid om buiten de database werken in aanvulling op getroffen

2 CakePHP's cache-functie enigszins zwak is, en de configuratie functies enigszins zwak. CakePHP is niet geschikt voor grootschalige toepassingen, alleen applicaties voor middelgrote en kleine toepassingen, de kosten van iets hoog punt van het leren

Waardering:

Over het geheel genomen het PHP framework CakePHP raamwerk vormt een belangrijk en vertegenwoordiger van een tijdperk, en is momenteel een belangrijke rol speelt, hebben velen hun eigen exemplaar van de CakePHP kader van de weg te schrijven, is een mijlpaal product; onthullen CakePHP de ROR'sagile development methoden en de database operatie die het enige model ontwerp ideeën is, zoals een snelle applicatie-ontwikkeling en prototyping is een perfect hulpmiddel; Ook Web2.0-sites worden gebruikt voor de ontwikkeling van het kader, is het de moeite waard om te kiezen.

Zend Framework

Voordelen:

. 1 De officiële geproduceerd, komt met een heleboel van de bibliotheek, het kader zelf maakt veel gebruik van design patterns te schrijven, zeer elegante structuur, de efficiëntie van de media; MVC design, de relatief eenvoudige, met routing, krachtige configuratie bestand (hendel naarXML en PHP INI), een variëteit van de bibliotheek is zeer krachtig, alle functies PHP framework, de meest uitgebreide, waaronder niet alleen een kader, het is een grote class library (in plaats van PEAR), dat is de belangrijkste functie; aanNaast de directe ondersteuning van database operaties buiten de Model-laag (sterker dan CodeIgniter en CakePHP), en kan gemakkelijk worden geladen met behulp van de Loader functies van andere nieuw toegevoegde klasse; Cache functie is zeer krachtig, van voren naar de back-end Cache Cache ondersteuning,cache back-end ondersteuning van memcache, APC, SQLite, bestanden en nog veel meer manieren; database operationele functie is zeer krachtig, ondersteunt een groot aantal bestuurders (adapters)

2. Documentatie is zeer volledig, zeer volwassen gemeenschap in het land, en vele Web 2.0 sites nu in gebruik, de kosten van het secundair onderwijs

Nadelen:

1. MVC feature complete zwak, Bekijk laag eenvoudige implementatie (zoals niet hetzelfde te bereiken), niet erg sterke controle van de voorpagina

2. Er is geen geautomatiseerde scripts om een applicatie te maken, met inbegrip van het importbestand, hebben allemaal hun eigen hand gebouwd, hoge kosten van binnenkomst

3. Zend Framework applicatie framework als een medium niet een groot probleem, en kan nauwelijks als een kader voor grootschalige toepassingen, maar als een zeer volwassen voor grootschalige PHP framework, maar ook kost wat moeite

Waardering:

Gevormd als de officiële kader, Zend Framework heeft de ambitie voorspelbaar is, probeert te persen uit andere kaders, maar veel krachtige bibliotheek pakket dat het kader vormt voor een one-stop service, en hun development team is erg sterk, er is vol genoegmogelijkheid om producten die voortkomen uit zeer sterk te ontwikkelen, is het essentieel om het Zend Framework te bepalen veelbelovend uit, als het meer tijd kost om een perfecte frame.Evenzo, Zend Framework is relatief elegante architectuur zelf, dat er vele master Zend ambtenaar, het ontwerp is vrij ver gevorderd, hoewel niet perfect genoeg om een aantal functies, zoals de opvatting laag, geautomatiseerde scripts, etc., die afhankelijk zijn van de toekomst te bereikenupgrade.Over het geheel genomen de meest verwachte Zend Framework is een raamwerk, natuurlijk, nu moet je zet je project voltooid is, met geen enkel probleem.

Symfony

Voordelen

1. Symfony PHP framework dat ik weet dat de meest krachtige, en ik gebruikte een lange tijd, maar veel functies nog niet opgegraven; de volledige tenuitvoerlegging van de MVC laag, alles samenvat, met inbegrip van de $ _POST, $ _GET gegevens, exception handling, debugging, gegevens te detecteren; bevat krachtige cache-functie, automatische load-klasse (Deze functie is zo cool), de machtige staat i18n ondersteuning; hebben een zeer sterke view laag operatie kan meerdere bestanden bevatten gefragmenteerd zijn een; zeer krachtige configuratie mogelijkheden, het gebruik yml configuratie om het gedrag van alle frames en uitvoeren, sterk genoeg om mensen te laten sprakeloos controle, dat is allemaal hun eigen arbitraire definitie van klasse, en symfony automatisch (auto belasting) de klasse belasting,vrij in het programma kan bellen, inclusief een sterke multi-level-projecten en applicatiebeheer: Project - Toepassing - Module - Actie, het kader van een project om de behoeften van meerdere applicaties te voldoen, en elke laag kan worden gedefinieerdhun eigen bibliotheken, configuratiebestanden, lay-out; zeer krachtige command line functies, met inbegrip van het opzetten van projecten, bouwen applicaties, modules maken, spoelt u de cache en ga zo maar door;

2. Symfony is zeker de eerste keuze voor de ontwikkeling van grootschalige complexe projecten, omdat het gebruik van Symfony, zal sterk bespaart kosten van ontwikkeling, en samenwerking na verloop van tijd, geen probleem, zoals omschreven in het project gebaseerd op klasse na de les, elke module kan worden hergebruikt,hergebruik veel code

Nadelen:

1. De database zwaargewicht operating model met behulp van stuwen en creoolse, maar in de versie die ik getest heb is verplaatst naar de addon in hen, kan wel of niet

. 2 Caching kan geen controle elke keer dat de cache is altijd de ontwikkeling en debugging, dient uit te voeren symfony cc, symfony rc is verdwenen en de cache weer op te bouwen;

3. Efficiëntie is niet hoog, vooral in het ontleden van het configuratiebestand sjablonen en het proces van lezen, tijd doorbrengen veel;

4. Learning kosten zijn hoog en er zijn geen volwassen gemeenschap en documentatie, zelfs niet de Chinese handleiding, wat overeenkomt met alle functies master, moet je meer tijd besteden aan

Waardering:

Symfony is zeker enterprise-level kader, het enige gebied dat tot krachtige Java framework lijkt met iets te concurreren; krachtige dingen, natuurlijk het leren van complexe, maar ook de bijbehorende ontwikkeling van het project meer nuttig, is de natuurlijke complexe projecten aan te raden om gebruik Symfonyom te gaan met, denk dat het de moeite waard is, de laatste is relatief lage onderhoudskosten, herbruikbaarheid is erg sterk.Als u de overeenkomstige Symfony moeten allemaal worden meer complexe internet projecten, is het noodzakelijk om de overeenkomstige probleem van de verdeling van de database te overwegen, moet je af te zien van Symfony wordt geleverd met de database operationeel niveau, heeft zijn eigen definitie, natuurlijk, Symfony ondersteunt een willekeurigestructurele model laag.

Samenvatting

Over meerdere kaders hebben hun eigen kenmerken, en zijn open source projecten, maar niet hetzelfde als het kader voor het project, in het algemeen, meer geschikt voor kleine projecten CodeIngiter, CakePHP en het Zend Framework is geschikt voor middelgrote projecten, Symfony zwaargewicht meer geschikt voor grootschalige projecten,Wanneer de selectie van projecten, moeten we volledig rekening houden met de kader kan worden aangepast, schaalbaarheid, omdat elk project kan niet worden zeker als je gewijzigd worden als behoeften veranderen.

Relatief gesproken, Zend Framework en Symfony relatief sterke vermogen om te gaan met veranderingen, in het bijzonder, kan vrij aanpassen van de model laag van de klasse, kan erg handig zijn om hun bedrijfs-of verwerking van gegevens klassen te vergroten, ik persoonlijk adviseren het gebruik van grootschalige projecten in het kader.

CodeIngiter en CakePHP hetzelfde in kleine en middelgrote projecten een belangrijke rol kan spelen in de snelle ontwikkeling en prototyping, doel is niet erg geschikt voor het prototype ontwikkeling van het project duidelijk.

Natuurlijk, misschien, het schrijven van een kader voor meer geschikt.

Algemeen kader voor de evaluatie van verschillende geschat dat veel dingen niet het punt, voorlopig kijken we voor dezelfde standpunten en suggesties zijn welkom correcties!