Gå til indhold
Journalen

Hvad er Laravel? PHP-frameworket forklaret

Hvad er Laravel? En ligefrem forklaring af PHP-frameworket: hvad der følger med, hvordan en app virker, hvad det bruges til, og hvad Laravel udvikling er.

4 min. læsetid#guide#laravel

Hvad er Laravel? Det korte svar: Laravel er et gratis open source-framework til at bygge webapplikationer i PHP. Indlægget her forklarer, hvad det betyder i praksis, hvad der følger med, hvordan en Laravel-app virker, hvad den bruges til, og hvornår det er det forkerte værktøj. Jeg er udvikler i Vejle og bygger og overtager forretningssystemer, så læs det med det i baghovedet.

Hvad er Laravel?#

Laravel er et webframework skrevet i PHP, skabt af Taylor Otwell og første gang udgivet i 2011. Det er open source under MIT-licensen, så det koster ikke noget at bruge, og koden er offentlig.

Et framework er det færdige fundament, en applikation bygges på: hvordan en forespørgsel fra browseren finder frem til den rigtige kode, hvordan data læses fra og skrives til databasen, hvordan siderne bliver vist, og hvordan brugerne logger ind. Uden et framework bygger hvert projekt de dele forfra. Med Laravel går timerne til det, der er særligt for jeres forretning.

Laravel følger model-view-controller-mønsteret (MVC). Modellerne er data, views viser det, brugeren ser, og controllerne sidder imellem og bestemmer, hvad der sker ved hver forespørgsel. Under motorhjelmen bygger det på en række gennemprøvede Symfony-komponenter, og det installeres og holdes opdateret med Composer, pakkehåndteringen til PHP.

Hvad følger med Laravel?#

Det meste af det, et forretningssystem skal bruge, er bygget ind:

  • Routing og middleware: hvilken adresse der kører hvilken kode, og de tjek, der kører før, for eksempel om brugeren er logget ind og må se siden.

  • Eloquent: Laravels ORM. Hver tabel i databasen er en PHP-klasse, så en almindelig forespørgsel som Order::where('status', 'paid')->get() erstatter håndskrevet SQL.

  • Migrationer: ændringer i databasens skema skrevet som kode, så hver kopi af systemet, på udviklerens maskine, på staging og i produktion, har de samme tabeller.

  • Blade: skabelonsproget til HTML-siderne.

  • Artisan: kommandolinjeværktøjet, der bruges til at køre migrationer, generere kode, rydde cache og køre applikationens egne kommandoer.

  • Køer og planlagte jobs: baggrundsarbejde, som at sende mails, lave PDF'er eller tale med andre systemer, og opgaver der kører efter en køreplan, som en fakturakørsel hver nat.

  • Login, validering, e-mails og notifikationer, plus indbygget understøttelse af automatiske test med PHPUnit eller Pest.

Rundt om frameworket er der et økosystem af pakker og tjenester bygget til det: Livewire og Inertia til interaktive brugerflader, Horizon til at holde øje med køerne, og Forge og Laravel Cloud til servere og hosting. Ingen af dem er et krav.

Hvordan virker en Laravel-app?#

En kort gennemgang af én forespørgsel:

  1. En kunde, der er logget ind, åbner /orders/42. Routeren finder ruten til den adresse.

  2. Middleware tjekker, at kunden er logget ind.

  3. Controlleren henter ordre 42 gennem Eloquent og tjekker, at netop den kunde må se den.

  4. Et Blade-view viser siden, og svaret går tilbage til browseren.

  5. Skal ordren have en bekræftelse på mail, lægger controlleren et job i køen, og en queue-worker sender den i baggrunden, så siden ikke venter på mailserveren.

Det er også derfor, en Laravel-app er mere end sine sider. De planlagte kommandoer og queue-workerne skal køre på serveren, ellers holder dele af systemet stille og roligt op med at virke, mens siderne ser fine ud.

Hvad bruges Laravel til?#

Laravel bruges til webapplikationer, hvor det vigtige er logik og ikke indhold: kundeportaler, booking- og ordresystemer, fakturering, interne værktøjer der er vokset ud af et regneark, og API'et bag en mobilapp eller en brugerflade i React eller Vue. En stor del af de danske forretningssystemer kører på det.

Det passer dårligere til en side, der mest er indhold, I selv vil rette i. Der er WordPress som regel billigere at bygge og billigere at drive.

Laravel-versioner og support#

Laravel udgiver en ny hovedversion cirka én gang om året. Hver version får fejlrettelser i 18 måneder og sikkerhedsrettelser i to år, og hver version kræver en minimumsversion af PHP, som har sin egen supportperiode. En app, der aldrig bliver opgraderet, glider derfor ud af support, mens den bliver ved med at køre fint, og springet bliver større, jo længere man venter.

Laravel udvikling#

Laravel udvikling er arbejdet med at bygge og passe systemer på Laravel: nye funktioner, opgradering af Laravel og PHP, integrationer til økonomi-, betalings- og CRM-systemer, og at overtage en app, når udvikleren er gået videre. For de fleste virksomheder er spørgsmålet ikke, om de skal vælge Laravel, men hvem der skal bygge videre på det Laravel-system, de allerede har.

Jeg har skrevet en særskilt guide om Laravel udvikling og hvornår Laravel er det rigtige valg, og en om den første uge, når man skal overtage en Laravel-app, efter udvikleren er stoppet.

Ofte stillede spørgsmål#

Er Laravel et programmeringssprog? Nej. PHP er programmeringssproget, og Laravel er et framework skrevet i PHP. Al Laravel-kode er PHP, men ikke al PHP-kode er Laravel.

Er Laravel gratis? Ja. Frameworket er open source under MIT-licensen. Det, der koster penge, er hosting, udviklerens tid og de betalte tjenester, I selv vælger at bruge.

Er Laravel frontend eller backend? Først og fremmest backend: det kører på serveren. Det kan selv vise siderne med Blade eller være API'et bag en brugerflade bygget i React eller Vue.

Bliver Laravel stadig brugt? Ja. Det er et af de mest udbredte PHP-frameworks, og der kommer en ny hovedversion hvert år.

Hvad er forskellen på Laravel og WordPress? WordPress er et CMS: du installerer det og begynder at redigere sider. Laravel er et framework: der er intet at redigere, før en udvikler har bygget applikationen. Er det mest indhold, peger det på WordPress, og er det mest logik, brugere og processer, peger det på Laravel.

Har du et Laravel-system, der skal bygges videre på, opgraderes eller overtages, kan du læse mere om min Laravel udvikling.

Var dette nyttigt?

Flere noter