Van het routeren van HTTP-verzoeken tot toegang tot de database en het weergeven van de gebruikersinterface, de meeste webtoepassingen hebben veel gemeen met elkaar. Velen van hen laten hun bezoekers toe zich aan te melden en het is moeilijk om een webtoepassing voor te stellen zonder e-mail te verzenden.
Een softwarekader is een manier om deze observatie in gebruik te nemen.
Door de gemeenschappelijke kenmerken en de onderliggende architectuur van de toepassing te extraheren en te bundelen in een herbruikbare sjabloon en verzameling bibliotheken, kunnen ontwikkelaars zich richten op wat hun project doet opvallen..
Als u uw vorige project als een boilerplate gebruikt in plaats van helemaal opnieuw te beginnen, gebruikt u al een ad-hoc framework. De populaire PHP-frameworks, zoals Laravel, Yii of Symfony, nemen deze logische conclusie door een sterke focus te leggen op het ontwerpen van de architectuur en tooling van het framework en deze vervolgens beschikbaar te maken voor andere ontwikkelaars om te gebruiken in hun projecten..
Maar is het gebruiken van een framework altijd de beste manier om te gaan, of heeft het soms zin om gewoon helemaal niets te beginnen met alleen PHP?
Om de vraag te beantwoorden, in deze tutorial, zullen we vijf voor- en nadelen bekijken van het gebruik van een PHP-framework.
Laten we beginnen met te kijken hoe het gebruik van een PHP-framework u kan helpen bij uw applicatie-ontwikkeling.
In de startups van vandaag, gebaseerd op experimenten, snelle prototyping en het zo snel mogelijk behalen van uw minimale levensvatbare product in de wereld, kan de ontwikkelsnelheid uw bedrijf zijn of breken..
Het gebruik van een PHP-framework is een manier om aan deze eis te voldoen.
Een goed ontworpen PHP-framework selecteert de beste implementaties voor veelvoorkomende problemen uit de open-sourcecommunity en biedt daarbovenop een applicatie-architectuur (in de meeste gevallen gebaseerd op het Model-View-Controller-patroon) om te begeleiden jouw ontwikkeling.
Op deze manier, in plaats van tijd te besteden aan het plannen van de architectuur van uw toepassing en het evalueren van de verschillende bibliotheken die beschikbaar zijn, kunt u beginnen met een volledig functioneel sjabloon, of alleen voor botten, en direct de functies ontwikkelen die specifiek zijn voor uw toepassing. Veel PHP-frameworks worden ook geleverd met een opdrachtregelprogramma dat u kunt gebruiken om code te genereren en meer van uw kostbare ontwikkeltijd te besparen.
Terwijl u uw ontwikkeling versnelt, kan een framework u ook veiliger maken: u werkt snel, maar dat gebeurt niet door u te hacken met behulp van snelle en vuile oplossingen, maar door beproefde best practices en kant-en-klare componenten te gebruiken.
De oplossingen in een modern PHP-framework worden voortdurend getest en door meerdere ontwikkelaars beoordeeld en gevalideerd door het framework. Omdat de frameworks open source zijn, worden beveiligingsproblemen en andere problemen die u misschien over het hoofd ziet in uw eigen code snel opgemerkt en opgelost.
Dat gezegd hebbende, is het belangrijk om te onthouden dat het gebruik van een framework niet betekent dat je alles over veiligheid en goede ontwikkelingspraktijken kunt vergeten. Zorg ervoor dat u het framework gebruikt zoals het bedoeld is om te worden gebruikt, houd het up-to-date en deel uw bijdrage aan zaken als parametervalidatie - met behulp van de frameworks-tools is het niet zo moeilijk.
Door een degelijke structuur voor uw toepassing te bieden en u te richten op de beste werkwijzen en patronen voor softwareontwikkeling, begeleidt een PHP-framework u naar het schrijven van code die losjes gekoppeld is en zich zo weinig mogelijk herhaalt. Met andere woorden, het is gemakkelijk te lezen, testen, onderhouden en verder ontwikkelen.
Vrijwel alle populaire PHP-raamwerken van vandaag zijn object georiënteerd en ontwikkeld met geautomatiseerde testen en zelfs proefgestuurde ontwikkeling in gedachten.
Je zult nog steeds je deel moeten doen. Maar vergeleken met helemaal opnieuw beginnen, zal een kader en zijn documentatie die je herinnert aan de concepten en je aansturen naar het gebruik ervan zeker helpen.
Een andere manier waarop het gebruik van een framework het onderhoud van uw applicatie vergemakkelijkt, is via de gedeelde componenten. Omdat de framework-bibliotheken en helpers onafhankelijk van uw applicatie worden ontwikkeld, kunt u een groot deel van het onderhoud van uw applicatie aan de framework-ontwikkelaars besteden..
In zekere zin is het alsof een team van ontwikkelaars gratis voor je werken!
Als ontwikkelaar, ken je je klassen en functies uit je hoofd en kun je ze gemakkelijk gebruiken. Maar als u teamleden inbrengt, verandert de situatie.
Zonder kennis van uw ontwerpbeslissingen en volledige documentatie (laten we eerlijk zijn: vooral in de wereld van snelle ontwikkeling, documentatie is vaak een bijzaak), zullen zij het moeilijk vinden om hun hoofd rond de code van uw toepassing te wikkelen..
Het gebruik van een PHP-framework zal het voor nieuwe ontwikkelaars gemakkelijker maken om aan de slag te gaan met het werken aan het project. De kans is groot dat ze al bekend zijn met het framework en al hun aandacht kunnen besteden aan het begrijpen van de details van de applicatie. En zelfs als het framework nieuw voor hen is, zullen de documentatie, online tutorials en de bekende ontwerppatronen hen helpen om met minimale inspanning op snelheid te komen..
Dit alles terwijl u aan de applicatie kunt blijven werken in plaats van de ontwikkelaars uw manier van denken te leren.
Ten slotte is een significant voordeel van het gebruik van een PHP-framework afkomstig van de actieve communities van ontwikkelaars en gebruikers die zich rondom hen verzamelen.
Alle belangrijke frameworks trekken open source-bijdragers aan die, naast het werken aan het framework zelf, aanvullende widgets, bibliotheken en helpercomponenten ontwikkelen die anderen in hun applicaties kunnen opnemen. Andere medewerkers schrijven zelfstudies en boeken of maken video's om uit te leggen hoe ze de kaders gebruiken in real-life projecten.
Als onderdeel van zo'n ontwikkelaarscommunity, groei je als een ontwikkelaar, leer je snel en pas je wat je leert toe op je applicatie-ontwikkeling.
En als u zo geneigd bent, kunt u deelnemen aan de open-sourceprojecten op elke manier die natuurlijk aanvoelt en aan u voldoet..
Nu we hebben gezien hoe het gebruik van een PHP-framework je kan helpen bij je ontwikkeling, laten we eens kijken naar de nadelen en waarom het zonder één gaan soms de betere optie is.
Vergeleken met het uitvoeren van een eenvoudig PHP-script, voegt een PHP-framework altijd complexiteit en overhead toe in de vorm van klassen en bibliotheken die zijn geladen voordat je code zelfs maar wordt aangeroepen. Het verschil kan aanzienlijk zijn in snelle scripts en API's met een beperkte set functionaliteit die snel moet worden uitgevoerd.
In de meeste webtoepassingen hebben de efficiëntie-implicaties van een framework echter meer te maken met hoe u het gebruikt dan met het framework zelf. Hoewel een Active Record-implementatie bijvoorbeeld een handige manier is om toegang te krijgen tot de database, is het niet logisch om deze te gebruiken op plaatsen waar u tegelijkertijd in meerdere rijen in de database moet werken..
Dus dit komt neer op het kennen van de behoeften van je toepassing, maar je kunt jezelf ook niet toestaan om te worden gehecht aan een specifieke manier om het te gebruiken. Soms is het zinvol om, zelfs bij het werken met een raamwerk, een deel van de code op een lager abstractieniveau te omzeilen en te schrijven.
Het idee van een PHP-raamwerk is om een algemene oplossing te zijn voor de terugkerende vereisten die de meeste ontwikkelaars tegenkomen bij het ontwikkelen van een webtoepassing. Maar waar moeten we de grens trekken van wat we in het raamwerk moeten opnemen en wat we moeten laten voor de applicaties of externe invoegtoepassingen om te implementeren?
Volgens sommige ontwikkelaars gaan hier veel raamwerken fout.
De maker van PHP, Rasmus Lerdorf, heeft gezegd:
"Niemand heeft een algemeen probleem. Iedereen heeft een heel specifiek probleem dat ze proberen op te lossen. En een raamwerk voor algemene doeleinden, terwijl het het kan oplossen, lost het meestal op zo'n manier op dat je zoveel andere dingen krijgt die je niet nodig hebt. Dat wordt op elk verzoek gedaan. "
Daarom is het belangrijk om ervoor te zorgen dat u een framework kiest dat past bij de behoeften van uw toepassing.
Hoewel de meeste frameworks gebaseerd zijn op lui laden en de delen van het framework die uw applicatie niet gebruikt, niet zullen bevatten, zal de extra complexiteit er nog steeds zijn, wat leidt tot onnodig sleutelen bij het verwijderen van functionaliteit die bij het framework hoort, maar die u niet nodig.
Hoewel een PHP-framework je naar goede code duwt, is dat geen garantie. Als je met een kader werkt zonder het te begrijpen en de ontwerppatronen erachter, zul je hoogstwaarschijnlijk eindigen met een grote, gestructureerde puinhoop.
Voor iemand die al bekend is met deze ontwerpprincipes, uit andere kaders of projecten, zal de leercurve relatief kort zijn. Voor een ontwikkelaar met minder ervaring duurt het leren langer. Om maar te zwijgen van het beheersen van het raamwerk.
Dus, als je haast hebt - en je project is klein - is het misschien niet het moment om een nieuw raamwerk te leren. Overweeg in plaats daarvan een micro-framework te gebruiken of zelfs helemaal opnieuw te beginnen en enkele bibliotheken te gebruiken die u kent.
Neem vervolgens de tijd om een volledig PHP-framework te leren wanneer uw schema dit toelaat.
Door een softwareframework te gebruiken, wordt de ontwikkeling van uw applicatie naar een hoger niveau van abstractie gebracht. Dit is door het ontwerp, en meestal een goede zaak. Het is echter goed om te beseffen dat dit ook tot problemen kan leiden.
Hoewel veel delen van de sjabloon van het framework bedoeld zijn om te worden aangepast, zijn de kern van het framework en de bijbehorende bibliotheken als een zwarte doos die u gebruikt, maar waarover u niet veel controle hebt. U kunt verbeteringen aanbevelen, maar uiteindelijk is het aan de ontwikkelaars van het framework om te beslissen of zij die wijziging al dan niet zullen opnemen.
Als u een framework begint te gebruiken voordat u de PHP-taal zelf volledig begrijpt, kunt u de functies van het framework verwarren met taalfuncties en uiteindelijk de functionaliteit van het framework gebruiken, zelfs als plain PHP een betere keuze is.
Een framework is altijd een externe afhankelijkheid voor uw applicatie-code die wordt beheerd door iemand anders dan u en uw team. Hoewel dit meestal geen probleem is, is het de moeite waard om te overwegen of de software die u aan het bouwen bent een kernonderdeel van uw bedrijf is.
Stel jezelf de vraag wat je gaat doen als de ontwikkeling van het framework wordt verbroken of in een richting gaat die je niet wilt volgen.
Een goede manier om dit risico te beperken, is om een betrouwbaar, populair raamwerk te gebruiken met een actieve gemeenschap van ontwikkelaars en gebruikers. Maar zelfs dan is het iets om over na te denken: zijn de voordelen van het gebruik van een raamwerk dat groot genoeg is om het risico de moeite waard te maken?
Een modern PHP-framework is een krachtig hulpmiddel in de toolkist van een softwareontwikkelaar: het kan u veel tijd en moeite besparen en gemoedsrust bieden bij het ontwikkelen van uw PHP-toepassing. Bedenk dat dit de kernkern PHP niet eerst moet vervangen!
De sleutel in bovenstaande conclusie is echter het selecteren van de juiste tool voor de klus. Elk project is anders en zelfs een raamwerk dat perfect is voor één project, is misschien niet helemaal goed voor het volgende project. Ga voor eenvoud en vraag jezelf af of een volledig kader geschikt is voor het project, of dat het gebruik van een micro-framework zoals Lumen een betere oplossing zou kunnen zijn.
Van nul beginnen met vanille PHP is zelden de beste optie, maar dat is ook de moeite waard om te overwegen bij het ontwikkelen van een heel eenvoudige applicatie (zoals een website zonder veel interactiviteit) en onthoud dat je het altijd kunt uitbreiden met Composer om bibliotheken van je te kiezen kiezen.
Zorg er bij het selecteren van een raamwerk voor dat het framework dat u kiest actief wordt ontwikkeld en ondersteund en volg de deugdelijke software-engineering. Op deze manier kunt u uw toepassing toekomstbestendig maken door ervoor te zorgen dat het onderliggende framework geen stille dood ondergaat.
En tot slot, zelfs als je besluit er geen te gebruiken, is het een goed idee om bekend te raken met een of meer van de moderne PHP-frameworks. Het bestuderen ervan is een uitstekende manier om je vak te leren en te verbeteren bij het ontwikkelen van software en je te helpen bij het op de hoogte blijven van de evoluerende wereld van PHP-ontwikkeling..