Waarom wij zo'n fan zijn van Laravel

Een uitgebreide basis en een brede open source community zorgen ervoor dat wij graag werken met Laravel voor heel wat projecten. Het framework is breed inzetbaar en ideaal voor grotere, complexere “custom” projecten met als focus het vereenvoudigen van bedrijfsprocessen en integraties op maat met externe systemen, zoals bijvoorbeeld CRM’s of boekhoudsystemen.

Wat is Laravel?

First things first: wat is Laravel nu eigenlijk? Laravel is een van de meest populaire web frameworks. Het is volledig open source en dus gratis te gebruiken. Een framework vormt de basis voor een software applicatie.

Zo'n framework heeft allerlei ingebouwde ondersteuning om sneller functionaliteiten te implementeren en biedt een "gestandaardiseerde" manier van werken, zodat developers met kennis van het framework sneller kunnen werken aan de broncode en er herbruikbare componenten gebouwd kunnen worden. Laravel laat ons, dankzij de vele out-of-the-box functionaliteiten én flexibiliteit, toe om snel custom web applicaties te bouwen.

Voorbeeld Filament package in het Wij.Leveren project

Er is een grote open source community rond Laravel die steeds extra features, componenten en integraties met third party tools ontwikkelt, waarop wij kunnen verder bouwen. Daarnaast zijn er ook heel wat (officiële) packages en tools voor bijkomende functionaliteiten. Dit zijn enkele voorbeelden:

8 redenen om voor Laravel te kiezen

De grote community, die support en veel extra functionaliteiten open source aanbiedt, is een van de vele redenen waarom we graag met Laravel werken.

1. Security

Voor een organisatie is het belangrijk om te investeren in veilige software om zo de privacy van hun gebruikers te beschermen. Laravel biedt op verschillende dimensies beveiligingsmechanismen tegen cyberaanvallen zoals SQL injectie, Cross-Site Request Forgery (CSRF) & Cross-Site Scripting (XSS). Daarnaast ondersteunt Laravel out-of-the-box encryptie: hiermee worden paswoorden geëncrypteerd met state-of-the-art Bcrypt en nooit leesbaar in een databank opgeslagen.

Daarnaast zijn er twee verschillende manieren om een gebruiker te authenticeren, namelijk met secured sessions of met een token m.b.v. Laravel Sanctum. Dat laatste is vooral handig voor API’s en single-page-applications, waar bijvoorbeeld een Javascript applicatie met de Laravel backend communiceert. Dit gebruiken we bijvoorbeeld in de Combat Harassment Tool van KU Leuven.

2. Updates

Het voordeel aan een open source framework is dat er frequent updates worden doorgevoerd. Het gaat vaak om (kleine) verbeteringen, maar er is ook veel aandacht voor security patches. Daarom maken wij regelmatig tijd om onze bestaande projecten up te daten naar de laatste versie van Laravel (dit is onderdeel van ons Basispakket Onderhoud & Ondersteuning). We vinden het belangrijk om in onderhoud te investeren en raden dit ook steeds aan aan onze klanten.

3. Performantie

Performantie heeft een belangrijke impact op de gebruikerservaring, CO2-uitstoot, conversie en SEO-waarde van je platform. Laravel helpt om ons om een performante oplossing te ontwikkelen op verschillende vlakken:

  • Standaard gaat Laravel al zeer veel configuratie, routes, views, dependency injection,... cachen. Dit wil zeggen dat pagina's sneller ingeladen worden voor de bezoeker.
  • Laravel biedt verschillende cache backends aan, zoals Memcached en Redis, waardoor je als developer zeer efficiënt data uit de applicatie kan cachen. Ook dit heeft een positieve impact op hoe snel die data inlaadt.
  • Het uitgebreide en flexibele job queue systeem zorgt ervoor dat je met Laravel langdurende taken - zoals een rapport maken of emails versturen - makkelijk naar een ander proces kan afsplitsen en dus de webapplicatie performanter maakt.

Hieronder geven we enkele voorbeelden van projecten waarbij Laravel ons hielp om een performante set-up te bekomen:

4. MVC-architectuur

Technisch werkt Laravel met een Model-View-Controller ontwerppatroon (MVC). Dit splitst complexe toepassingen op in 3 “lagen”. Model is het datamodel (bv. uit een databank), View is de presentatie van de data (bv. de gebruikersinterface), Controller bevat de applicatielogica. Hierdoor kunnen we business logica vertalen naar flexibelere, schaalbare software architectuur.

Dankzij deze architectuur is het mogelijk om een laag te vervangen of er een alternatief voor bij te voegen. Zo kan je bijvoorbeeld makkelijk een andere View laag maken om bv. data in JSON-formaat terug te geven als API, waar de API responses dan je View zijn.

Laravel laat je dus vrij om een andere view te kiezen dan het standaard Blade templating systeem. Zo gebruiken we op sommige projecten Inertia of Livewire om een gebruikerservaring te creëren die dynamisch geüpdatet wordt.

5. Job queues en scheduling

Met wachtrijen kunnen we taken doorgeven aan andere processen, en daardoor sneller een request afronden. Dit is bijvoorbeeld handig om e-mails te versturen, rapporten te maken of een data-export te genereren. Hierdoor ontlasten we de webserver en kan die sneller en meer requests verwerken. Laravel laat toe om taken te “schedulen”, handig om bijvoorbeeld onderhoudstaken uit te voeren (zoals assets opkuisen) of data synchronisaties te laten lopen met externe systemen (zoals facturatiedata naar het gekoppelde boekhoudpakket doorsturen).

Daarnaast kan dit systeem ook gebruikt worden als message queue en kan Laravel makkelijk integreren met externe message queues zoals bv. AWS SQS. Dit is onder andere handig voor asynchrone communicatie met externe systemen.

6. DX, oftewel Developer Experience

De makers van Laravel focussen erg op de gebruiksvriendelijkheid voor ontwikkelaars van het framework. Zo is de documentatie heel uitgebreid en overzichtelijk en zijn er veel officiële packages die je snel veel voorkomende functionaliteiten laten opzetten, bv. login- en registratieschermen of view templates om van te vertrekken,...

De grote community die intussen rond het framework ontstond, creëert een brede waaier aan packages met extra functionaliteiten, integraties en extensies. Die zijn bovendien meestal open source en gratis!

7. Vertalingen

In ons landje zijn de meeste websites en applicaties meertalig. Ondersteuning voor vertalingen zit in Laravel ingebakken en er zijn heel wat packages die extra functionaliteit toevoegen, zoals urls vertaalbaar maken. We hebben ook onze eigen vertaal-manager package, hiermee kunnen content managers vertalingen zelf makkelijk aanpassen. En daar profiteren o.a. Wij.Leveren, FamilieLink en de tandheelkunde navormingen van.

8. Integraties en de community

Laravel heeft een zeer uitgebreide out-of-the-box ondersteuning voor externe services met handige abstractielagen errond. Voor e-mails bijvoorbeeld is er een e-mail templating systeem met templates die je kan integreren met verschillende mail services of je eigen SMTP-server en dat door gewoon een configuratiebestand te bewerken.

Door de populariteit van het framework, bieden SaaS-providers vaak een package aan die hun service makkelijk integreert met Laravel. Dit, te samen met de grote open source community die het framework op alle mogelijke manieren uitbreiden (en dit vaak open source en gratis), zorgt ervoor dat wij meer en efficiënter waarde kunnen creëren voor jouw projecten!

En daarom geven we zelf ook graag iets terug aan deze community. De afgelopen tijd stelden wij al heel wat van onze eigen packages open source ter beschikking.

Wanneer kiezen we voor Craft CMS en wanneer voor Laravel?

Het zal je misschien al zijn opgevallen: naast Laravel zijn wij bij Statik ook fan van Craft CMS. Alhoewel Laravel zeer veel voordelen en functionaliteiten biedt, is het aanbod voor een Content Management Systeem (CMS) niet zo robuust als in Craft CMS of gelijkaardige frameworks als Drupal en WordPress. Laravel focust op een breder toepassingsgebied dan Content Management.

Wanneer een project of website voor het grootste deel uit contentpagina’s bestaat en het voornaamste doel het efficiënt beheren van deze content is, opteren wij meestal voor Craft CMS. Het datamodel focust op het flexibel opslaan van veel soorten contentvelden op een webpagina. Het is echter minder geschikt om complexe gestructureerde data op te slaan.

Wanneer het project minder focust op contentpagina’s en/of meer op gestructureerde data, complexere business logica, en uitgebreide integraties vereist, dan kiezen we voor Laravel.

Zelf nood aan een digitaal platform? Denk je dat Laravel iets kan betekenen voor jouw project?

Wij denken mee na over welke technologie het meest geschikt is om je doelstellingen te behalen.

Webdeveloper

Wie is Sten?

Sten voelt zich helemaal thuis in complexere 'custom' projecten met veel data of integraties met externe systemen.

Volgende blogpost

Bye bye Google Analytics Universal, maar wat met mijn historische data?

23 maart 2023

Google Analytics 4 (GA4) vervangt Universal Analytics (UA). Oud nieuws, maar nog steeds een hot topic. In het bijzonder: welke impact heeft die switch op je historische data, ofwel de verzamelde statistieken over je website? Kan je historische data importeren in GA4, hoe belangrijk is het behoud ervan en welke impact heeft dat op je digitale strategie en webtracking?