Laravel: Meer dan een Framework

Welkom in de Wereld van Laravel

Als je ooit hebt gehoord van Laravel, dan weet je waarschijnlijk dat het een van de populairste PHP-frameworks is. Laravel is echter veel meer dan dat en bestaat uit een compleet ecosysteem aan tools, online resources en een community van gepassioneerde developers. In dit artikel ontdek je waarom wij al verkocht zijn en hoe Laravel developers een totaaloplossing biedt om beter, sneller en leuker applicaties te ontwikkelen.

De Laravel Core

Of je nu routes definieert of een authenticatie mechanisme gaat opzetten, veel zaken worden in Laravel al geregeld voor je. De belangrijkste functionaliteiten uit het framework hebben we alvast op een rijtje gezet voor je, zodat we daarna de rest van het ecosysteem kunnen verkennen.

Eloquent ORM: Eloquent ORM maakt het werken met databases eenvoudig door gebruik te maken van models en een intuïtieve objectgeoriënteerde syntax in plaats van dat je aan de slag moet met SQL queries.

Queues/Jobs: Queues en jobs zorgen dat je taken zoals het versturen van e-mails, het verwerken van video’s of het uitvoeren van complexe berekeningen op de achtergrond kunt afhandelen. Dit zorgt ervoor dat je applicatie snel blijft reageren, zelfs als er zware taken worden uitgevoerd. Laravel biedt daarnaast ingebouwde ondersteuning voor verschillende queue drivers zoals de database, maar ook Redis, Beanstalkd, en Amazon SQS worden ondersteund. Met tools zoals Laravel Horizon kun je deze vervolgens eenvoudig monitoren en opschalen.

Routing: Het framework biedt flexibele mogelijkheden om URL’s te definiëren en te koppelen aan specifieke controller-acties. Met middleware kun je routes beschermen of specifieke logica toepassen voor bepaalde routes. Laravel maakt ook gebruik van resource routing, wat betekent dat je met een enkele regel code routes kunt genereren voor de CRUD-operaties (Create, Read, Update, Delete) van je resources.

Authenticatie: Laravel heeft out of the box een authenticatiesysteem waarmee je snel gebruikers kunt registreren, inloggen en beheren. Met ingebouwde ondersteuning vanuit de core en de beschikbare starter kits kan je eenvoudig wachtwoord reset, e-mailverificatie en tweefactorauthenticatie (2FA) functionaliteiten toevoegen aan jouw applicatie. Daarnaast helpen Laravel Sanctum en Laravel Passport met API-authenticatie, waardoor je je API’s eenvoudig kunt beveiligen.

Events: Events helpen je acties uit te voeren als reactie op bepaalde gebeurtenissen binnen je applicatie, zoals het versturen van een e-mail na registratie of het loggen van informatie wanneer een gebruiker inlogt. Door gebruik te maken van events (en listeners) kun je logica binnen je applicatie beter scheiden en onderhouden.

Artisan CLI: Artisan is de command line interface van Laravel en biedt een eenvoudige manier om taken en commando’s uit te voeren binnen je applicatie. Zo kun je eenvoudig nieuwe models of controllers maken, geven database monitoring commands inzicht in de status van de database of van individuele tabellen en kun je met tinker PHP code schrijven en uitvoeren binnen je applicatie. Je kunt ook je eigen commando’s schrijven, wat voor nog meer controle en flexibiliteit zorgt bij het ontwikkelen van je applicaties.

API’s bouwen: Binnen Laravel zet je met behulp van API Resource classes data van Eloquent models eenvoudig om naar een JSON-structuur, waardoor het opzetten van API’s een eitje wordt. Laravel ondersteunt daarnaast API routes voor een duidelijke scheiding van de frontend routes binnen je applicatie en wordt er rate limiting toegepast om misbruik te voorkomen. Wil je jouw API daarnaast JSON:API compliant ontwikkelen? Dan kun je gebruik maken van de laravel-json-api package, zodat je niet meer over standaarden en conventies na hoeft te denken en je een beter product kunt afleveren.

Blade: Blade is de templating engine van Laravel, ontworpen om data uit PHP eenvoudig in je HTML te gebruiken. Met Blade richt je bovendien je view structuur overzichtelijk en flexibel in zonder dat je code rommelig wordt.

Het Ecosysteem van Laravel

Naast het framework biedt Laravel een breed scala aan first party packages, waarvan de meeste gratis en een aantal betaald zijn. Deze packages maken van het framework een totaaloplossing en kunnen het ontwikkelproces enorm versnellen. We zullen een aantal van deze tools in dit artikel bespreken maar voor een volledig overzicht kan je een kijkje nemen op de Laravel website.

Snel aan de slag

Met Laravel Herd zet je razendsnel lokale omgevingen op. Deze handige tool zorgt ervoor dat je altijd de juiste versie van PHP en de juiste dependencies hebt om je Laravel-applicaties te ontwikkelen en te testen. Het automatiseert dus veel van de configuratie en setup, zodat je sneller aan de slag kunt.

De frontend van je applicatie

Laravel biedt verschillende opties om je frontend op te zetten. Laravel Jetstream en Breeze zijn starter kits die je snel op weg helpen met een Vue.js of React gebaseerde frontend. Jetstream is daarin iets uitgebreider en biedt functionaliteiten zoals teammanagement en API-toegang, terwijl Breeze eenvoudiger is en meer vrijheid biedt om je eigen frontend te ontwikkelen.

Voor ontwikkelaars die de kracht van moderne JavaScript-frameworks willen benutten, kiest Laravel ervoor om Vite te gebruiken voor het beheren en bundelen van frontend assets. Vite, dat door de community is geadopteerd (maar niet door Laravel zelf is ontwikkeld), biedt een snellere en efficiëntere workflow dan bijvoorbeeld zijn voorganger Laravel Mix.

Daarnaast zijn er twee populaire methoden om dynamische frontends te ontwikkelen binnen Laravel:

  • Inertia: Inertia stelt je in staat om moderne, op JavaScript gebaseerde frontends te bouwen zonder dat je een volledige API hoeft te schrijven. Het maakt gebruik van Laravel’s router en controllers en verzorgt de communicatie tussen de backend en een op Vue.js of React gebaseerde frontend. Hierdoor kun je de voordelen van een single-page application (SPA) ervaren zonder dat je al het bijkomende gedoe hebt.

  • Livewire: Livewire, ontwikkeld door een van de makers van Laravel, is perfect voor developers die liever zo min mogelijk JavaScript schrijven. Het maakt het mogelijk om dynamische interfaces te bouwen door simpelweg PHP te schrijven. Livewire werkt naadloos samen met Blade, Laravel’s templating engine, en biedt daarmee een soepele ervaring voor zowel developer als gebruiker.

Admin Panels & Dashboards

Als je op zoek bent naar een kant-en-klaar admin panel, dan is Laravel Nova de aangewezen oplossing. Hiermee krijg je in no-time een gebruiksvriendelijke interface voor het beheren van je applicatie en het uitvoeren van beheertaken. Filament en Voyager zijn ook populaire third-party admin panel packages, met uitgebreide functies zoals een menu builder, media manager, en gebruikersbeheer tools, die je veel ontwikkeltijd kunnen schelen.

Controle en Debugging

Debugging blijft een kunst op zich maar met de Debugbar wordt dit een stuk eenvoudiger. Deze tool is gemaakt door een community member en geeft je direct inzicht in wat er in je applicatie gebeurt. Zo kan je eenvoudig routes, logs en database queries inspecteren.

Daarnaast is er Laravel Telescope, een uitgebreidere debugging tool die ook vanuit de community is ontstaan. Telescope biedt diepgaand inzicht in de werking van je applicatie door bijvoorbeeld je requests, jobs, notificaties, caches en exceptions te monitoren. Deze tool is vooral nuttig tijdens de ontwikkelfase om problemen snel te identificeren en op te lossen.

Voor monitoring in een productieomgeving biedt Laravel Pulse. Pulse geeft je een dashboard waarmee je de status van je applicatie kunt monitoren, zelfs in een live omgeving. Waar Debugbar en Telescope zich richten op debugging tijdens het ontwikkelen, is Pulse dus ontworpen om je applicatie op de lange termijn te monitoren en te optimaliseren.

Deployment

Als je klaar bent om je meesterwerk online te zetten, biedt Laravel tools zoals Forge voor het serverbeheer en Vapor voor serverless deployment via AWS. Voor meer geavanceerde deployments is er daarnaast Envoyer, dat je helpt bij zero-downtime deployments. Met geautomatiseerde serverbeheer en deployments kun jij je concentreren op wat echt belangrijk is: code schrijven.

Updaten

Laravel brengt geregeld updates uit. Bij elke major update is er een upgrade guide beschikbaar waarmee deze eenvoudig doorgevoerd kan worden. Met Laravel Shift kunnen deze processen zelfs geautomatiseerd worden waardoor updates een fluitje van een cent worden.

Geautomatiseerd testen

Wil je een applicatie doorontwikkelen, dan ontkom je niet aan geautomatiseerd testen. Laravel heeft hier gelukkig al rekening mee gehouden en biedt een goede basis om jouw applicatie te testen met PHPUnit. Zo wordt het uitvoeren van geautomatiseerde database-, HTTP-, console- en job tests een stuk eenvoudiger. Daarnaast is er een scala aan tools die je helpen jouw automatische testprocessen naar het volgende niveau te tillen.

Laravel Dusk: Deze tool maakt het mogelijk om browsersessies en dynamische frontends te testen. Dusk werkt hiervoor met echte browsers en is gewoon met PHPUnit uit te voeren.

Pest: Laravel biedt out of the box ondersteuning voor Pest, een testing framework dat bovenop PHPUnit is gebouwd en voor nog meer flexibiliteit en eenduidigheid in de syntax zorgt.

Code kwaliteit

Potentiële bugs voorkomen en de kwaliteit van jouw code verhogen? Ook daar zijn oplossingen voor binnen het ecosysteem van Laravel.

Larastan: Deze tool voegt alle Laravel logica en magie toe aan PHPStan en helpt je om potentiële bugs en inconsistenties in je code op te sporen voordat ze productieproblemen veroorzaken.

Laravel Pint: Deze oplossing zorgt ervoor dat jouw code consistent en schoon blijft. Pint maakt daarbij gebruik van PHP-CS-Fixer om je code (style) automatisch aan jouw standaard te laten voldoen.

Online educatie

Wat Laravel onderscheidt van andere frameworks is niet alleen het rijke ecosysteem maar ook de buitengewoon goede informatie en educatieve opties. De drempel om te starten is daarmee laag en ook ervaren ontwikkelaars blijven daardoor uitgedaagd. De belangrijkste startpunten? Naast de officiële documentatie hebben we de belangrijkste bronnen alvast voor je op een rijtje gezet.

Laracasts: Voor diegenen die het liefst leren van video’s, biedt Laracasts een uitgebreid informatieplatform. Met honderden videolessen, specifiek gericht op Laravel en aanverwante technologieën, is Laracasts de perfecte plek om te starten of je kennis naar een hoger niveau te tillen. Menig developer heeft hier de fijne kneepjes geleerd!

Laravel News: Het laatste nieuws, tutorials en package releases worden regelmatig gepubliceerd op Laravel News. Dit platform houdt je niet alleen op de hoogte van wat er speelt binnen de community, maar inspireert je ook met nieuwe ideeën en ontwikkelingen.

Online communities: Laravel kent een sterke community-ondersteuning via forums zoals Discord en de Laravel subreddit. Hier kun je vragen stellen, ervaringen delen en leren van andere ontwikkelaars.

De Laravel Podcast: De Laravel Podcast neemt je mee in gesprekken tussen de makers van Laravel en experts uit de community. Het is dé plek om op de hoogte te blijven van de nieuwste ontwikkelingen en het Laravel-ecosysteem.

De Community

De Laravel-community heeft sinds de start in 2011 een belangrijk rol gespeeld in de ontwikkeling van het framework en is vandaag de dag levendiger dan ooit. Deze community maakt Laravel niet alleen populair, maar zorgt er ook voor dat het framework continu ontwikkelt en zich aanpast aan nieuwe technologieën en inzichten.

In Nederland is de Laravel-community minstens zo actief, met een sterke vertegenwoordiging via de Dutch Laravel Foundation. Bij de Dutch Laravel Foundation geloven we in de kracht van de community. Want zeg nou zelf, wat is een framework zonder een leuke groep mensen die elkaar helpen, inspireren en samen verder groeien? We organiseren diverse meetups en jaarlijkse events zoals LaraFest, waar je kunt rekenen op interessante talks en een biertje kunt drinken met mede Laravel-liefhebbers. Daarnaast zijn er de LarAwards, waar we de beste prestaties en bijdragen binnen de community in het zonnetje zetten.

Ben je meer van het hands-on werk? Dan zijn onze hackathons perfect voor jou! Hier komt de magie van Laravel echt tot leven en bouwen teams in een beperkte tijd een oplossing die de community verder helpt.

Enthousiast geworden?

Dat hopen we wel natuurlijk! Er is eigenlijk geen slecht startpunt om Laravel beter te leren kennen maar de video’s van Laracast zijn bij veel developers favoriet. Voel je daarnaast vrij om eens aan te sluiten bij een van onze meetups of om lid te worden van het Laravel Discord-kanaal. We hopen je snel te zien!

Over de auteur

Dit artikel werd geschreven door Bob van Biezen, mede-oprichter van Web Whales. Web Whales is een van onze leden en winnaar van de laatste editie van de LarAwards!