Fra å henvende HTTP-forespørsler for å få tilgang til databasen og gi brukergrensesnittet, har de fleste webapplikasjoner mye felles med hverandre. Mange av dem tillater sine besøkende å logge på, og det er vanskelig å forestille seg et webprogram uten å sende e-post.
En programvare rammeverk er en måte å sette denne observasjonen i bruk.
Ved å trekke ut de vanlige trekkene og programmets underliggende arkitektur og kombinere dem med en gjenbrukbar mal og samling av biblioteker, gir et rammeverk utviklere muligheten til å fokusere på hva som gjør sitt prosjekt skiller seg ut.
Faktisk, når du bruker ditt tidligere prosjekt som en boilerplate i stedet for å starte fra bunnen av, bruker du allerede et ad hoc-rammeverk. De populære PHP-rammene, som Laravel, Yii eller Symfony, tar denne tilnærmingen til sin logiske konklusjon ved å legge sterkt fokus på å utforme rammeverkets arkitektur og verktøy og deretter gjøre det tilgjengelig for andre utviklere å bruke i sine prosjekter.
Men bruker en ramme alltid den beste måten å gå på, eller gjør det noen ganger mening bare å starte fra bunnen av med ingenting annet enn vanlig PHP?
For å svare på spørsmålet, i denne opplæringen vil vi se på fem fordeler og ulemper med å bruke et PHP-rammeverk.
La oss begynne med å se på hvordan bruk av et PHP-rammeverk kan hjelpe deg i din applikasjonsutvikling.
I dagens oppstart basert på eksperimentering, rask prototyping og få ditt minst mulig levedyktige produkt ut i verden så fort som mulig, kan utviklingshastigheten være det som gjør eller ødelegger virksomheten din.
Bruk av PHP-rammeverk er en måte å svare på dette kravet på.
Et godt designet PHP-rammeverk velger de beste implementasjonene til vanlige problemer fra det åpne kildesamfunnet, og gir deg en applikasjonsarkitektur (i de fleste tilfeller basert på modell-View-Controller-mønsteret) som bygger på dem. din utvikling.
På denne måten, i stedet for å bruke tid på å planlegge søknadens arkitektur og evaluere de ulike bibliotekene som er tilgjengelige, kommer du til å starte fra en fullt funksjonell, om bare bein, mal og få rett til å bygge funksjonene som er spesifikke for søknaden din. Mange PHP-rammer kommer også med et kommandolinjeverktøy som du kan bruke til å generere kode og lagre mer av din dyrebare utviklingstid.
Mens utviklingen påskyndes, kan et rammeverk også gjøre deg sikrere: Du jobber fort, men det skjer ikke ved å hacke deg ved hjelp av raske og skitne løsninger, men ved å bruke velprøvde beste praksis og ferdige komponenter.
Løsningene som inngår i et moderne PHP-rammeverk, blir kontinuerlig testet og peer-evaluert og validert av flere utviklere ved hjelp av rammen. Som rammene er åpen kildekode, kan sikkerhetsproblemer og andre problemer som du overser i din proprietære kode raskt bli lagt merke til og løst.
Når det er sagt, er det viktig å huske at å bruke et rammeverk betyr ikke at du kan glemme alt om sikkerhet og god utvikling. Sørg for at du bruker rammen som den er ment å bli brukt, hold den oppdatert, og gjør din rolle i ting som parameter validering - ved hjelp av rammebetingelsene, er det ikke så vanskelig.
Ved å gi en lydstruktur for søknaden din og nudge deg mot programvareutvikling beste praksis og mønstre, veileder et PHP-rammeverk deg mot å skrive kode som er løst koblet og gjentar seg så lite som mulig. Det er med andre ord lett å lese, teste, vedlikeholde og utvikle videre.
Nesten alle populære PHP-rammer er i dag objektorientert og utviklet med automatisert testing og til og med testdrevet utvikling i tankene.
Du må fortsatt gjøre din del. Men i forhold til å starte fra begynnelsen, vil et rammeverk og dokumentasjon minne deg om konseptene og knuse deg mot å bruke dem, sikkert hjelpe.
En annen måte å bruke et rammeverk på, gjør at søknaden din blir enklere, er gjennom delte komponenter. Ettersom rammebiblioteker og hjelpere utvikles uavhengig av søknaden din, får du avlastet en stor del av søknadens vedlikehold til rammevilkårene.
På en måte er det som å ha et team utviklere som jobber for deg, gratis!
Som utvikler vet du dine klasser og funksjoner av hjertet og kan bruke dem enkelt. Men når du tar med i lagmedlemmer, endres situasjonen.
Uten kjennskap til dine designbeslutninger og komplett dokumentasjon (la oss innse det: spesielt i verden med rask utvikling, er dokumentasjon ofte en ettertanke), de vil finne det vanskelig å vikle hodene rundt programmets kode.
Ved hjelp av et PHP-rammeverk vil det bli lettere for nye utviklere å komme i gang med å jobbe med prosjektet. Sjansene er at de allerede er kjent med rammen og kan legge all oppmerksomhet i å forstå programmets spesifikasjoner. Og selv om rammene er nye for dem, vil dokumentasjonen, online-opplæringen og de kjente designmønstrene hjelpe dem med å få fart med minimal innsats.
Alt dette mens du kan fortsette å jobbe på applikasjonen i stedet for å undervise utviklerne dine måter å tenke på.
Endelig kommer en betydelig fordel med å bruke et PHP-rammeverk fra de aktive samfunnene til utviklere og brukere som samles rundt dem.
Alle de store rammeverkene tiltrekker seg åpen kildekode-bidragsytere som i tillegg til å arbeide med selve rammen, utvikler ekstra widgets, biblioteker og hjelpekomponenter for andre å inkludere i deres applikasjoner. Andre bidragsytere skriver opplæringsprogrammer og bøker eller lager videoer for å forklare innsiktene i hvordan de bruker rammebetingelsene i virkelige prosjekter.
Som en del av et slikt utviklingssamfunn, vil du vokse som utvikler, lære raskt og bruke det du lærer på din applikasjonsutvikling.
Og hvis du er så tilbøyelig, kan du gi tilbake og delta i open source-prosjektene på en måte som føles naturlig og oppfylle deg.
Nå som vi har sett hvordan bruk av et PHP-rammeverk kan hjelpe deg i utviklingen din, la oss ta en titt på ulemper og hvorfor å gå uten en, kan noen ganger være det bedre alternativet.
Sammenlignet med å kjøre et enkelt PHP-skript, legger et PHP-rammeverk alltid kompleksitet og overhead i form av klasser og biblioteker lastet før koden din selv blir kalt. Forskjellen kan være signifikant i hurtige skript og APIer med et begrenset sett av funksjonalitet som trenger å løpe fort.
I de fleste webapplikasjoner har effektivitetsimplikasjonene av et rammeverk imidlertid mer å gjøre med hvordan du bruker det enn selve rammen. For eksempel, mens en Active Record-implementering er en nyttig måte å få tilgang til databasen, er det ikke fornuftig å bruke det på steder der du må jobbe på flere rader i databasen samtidig.
Så dette kommer ned til å kjenne programmets behov, men ikke heller tillate deg å bli knyttet til en bestemt måte å bruke den på. Noen ganger, selv når du arbeider med et rammeverk, er det fornuftig å sidestep og skrive noe av koden på et lavere abstraksjonsnivå.
Ideen om et PHP-rammeverk er å være en generell løsning for de gjentatte kravene de fleste utviklere vil møte når de skal utvikle et webapplikasjon. Men hvor skal vi tegne linjen i hva du skal ta med i rammen og hva du skal legge til for applikasjonene eller tredjeparts tilleggene, å implementere?
Ifølge noen utviklere er dette her hvor mange rammebetingelser går galt.
PHPs skaperen, Rasmus Lerdorf, har sagt:
"Ingen har et generelt problem. Alle har et svært spesifikt problem de prøver å løse. Og et generelt rammeverk, mens det kan løse det, løser vanligvis det på en måte at du får så mange andre ting som du ikke trenger. Det slutter å bli gjort på alle forespørsler. "
På grunn av dette, hvis du bestemmer deg for å bruke et rammeverk, er det viktig å sørge for at du velger en som passer til programmets behov.
Mens de fleste rammer er basert på lat lasting og ikke inkluderer de delene av rammen som søknaden din ikke bruker, vil kompleksiteten fortsatt være der, noe som fører til unødvendig tinkering i å fjerne funksjonalitet som fulgte med rammen, men at du ikke trenger ikke.
Mens et PHP-rammeverk knuter deg mot god kode, er det ingen garanti for det. Hvis du arbeider med et rammeverk uten å forstå det og designmønstrene bak det, vil du sannsynligvis ende opp med et stort, strukturert rot.
For noen som allerede er kjent med disse designprinsippene, fra andre rammer eller prosjekter, vil læringskurven være relativt kort. For en utvikler med mindre erfaring, vil læring ta lengre tid. For ikke å nevne å mestre rammen.
Så hvis du har det travelt - og prosjektet ditt er lite, kan det ikke være på tide å begynne å lære et nytt rammeverk. I stedet bør du vurdere å bruke en mikroramme eller til og med starte fra bunnen av og bruke noen biblioteker du er kjent med.
Så ta deg tid til å lære et fullverdig PHP-rammeverk når timeplanen tillater det.
Ved hjelp av en programvare rammeverk flytter applikasjonsutviklingen til et høyere nivå av abstraksjon. Dette er av design, og vanligvis en god ting. Det er imidlertid godt å innse at det også kan føre til problemer.
Mens mange deler av rammenes mal er ment å være tilpasset, er rammeverkets kjerne og dets biblioteker som en svart boks du bruker, men har ikke mye kontroll over. Du kan foreslå forbedringer, men i siste instans er det opp til rammens utviklere å avgjøre om de vil inkludere den endringen eller ikke.
Også, hvis du begynner å bruke et rammeverk før du fullt ut forstår PHP-språket selv, kan du forvirre rammens funksjoner med språkfunksjoner - og vil ende opp med å bruke rammens funksjonalitet, selv når vanlig PHP ville være et bedre valg.
Et rammeverk er alltid en ekstern avhengighet for din søknadskode styrt av en annen enn deg og ditt lag. Selv om dette vanligvis ikke er et problem, er det noe verdt å vurdere om programvaren du bygger er en viktig del av virksomheten din.
Spør deg selv hva du vil gjøre hvis rammens utvikling er tapt eller beveger seg i en retning du ikke vil følge.
En god måte å redusere denne risikoen på er å bruke en pålitelig, populær ramme med et aktivt samfunn av utviklere og brukere. Men selv da er det noe å tenke på: er fordelene med å bruke et rammeverk som er stort nok til å gjøre risikoen verdt å ta?
Et moderne PHP-rammeverk er et kraftig verktøy i et programvareutviklerens verktøybryst: det kan spare deg for mye tid og krefter og gi ro i sinnet når du utvikler PHP-applikasjonen. Bare husk at dette ikke bør erstatte læringskjernen PHP først!
Nøkkelen i den ovennevnte konklusjonen er imidlertid å velge riktig verktøy for jobben. Hvert prosjekt er annerledes, og selv et rammeverk som er perfekt for ett prosjekt kan ikke være helt riktig for det neste. Gå for enkelhet og spør deg selv om et fullblåst rammeverk er riktig for prosjektet, eller hvis du bruker en mikroramme som Lumen, kan det være en bedre løsning.
Fra begynnelsen ved hjelp av vanilla PHP er sjelden det beste alternativet, men det er også verdt å vurdere når du utvikler en veldig enkel applikasjon (for eksempel et nettsted uten mye interaktivitet) - og husk at du alltid kan utvide den ved å bruke Komponist til å velge biblioteker fra din velge.
Når du velger et rammeverk, må du sørge for at rammen du velger, er aktivt utviklet og støttet, og følger lydteknikkpraksis. På denne måten er du fremtidssikre din søknad ved å sørge for at det underliggende rammeverket ikke vil lide en rolig død.
Og til slutt, selv om du bestemmer deg for ikke å bruke en, er det en god ide å bli kjent med en eller flere av de moderne PHP-rammene. Å studere dem er en utmerket måte å lære og forbedre håndverket på i programvareutvikling, og hjelpe deg å holde deg oppdatert på utviklingen av PHP utvikling.