Laravel
Webapplicaties bouwen met Laravel: routing, Eloquent-modellen, authenticatie, queues en deployment, uitgelegd met praktische voorbeelden die je in echte projecten gebruikt.
Hier staan nog geen artikelen
We hebben hier nog niet over geschreven. Bekijk een ander onderwerp, of kom snel terug.
Questions about this topic
Quick, clear answers to what readers ask most about this topic.
Wat is Laravel?
Laravel is een gratis, open source PHP-framework om webapplicaties te bouwen. Laravel geeft ontwikkelaars kant-en-klare onderdelen voor routing, databases, inloggen, e-mail, wachtrijen en testen, zodat ze minder herhaalde code schrijven. Het framework volgt het model-view-controllerpatroon en heeft een grote community.
Waarvoor wordt Laravel gebruikt?
Laravel wordt gebruikt om webapplicaties te bouwen zoals beheersystemen, klantportalen, webshops, boekingsplatforms en API's voor mobiele apps. Laravel past bij elk project dat gebruikers, een database en bedrijfsregels nodig heeft. Veel bedrijven draaien grote besloten systemen op Laravel omdat het framework stabiel en makkelijk uit te breiden is.
Is Laravel geschikt voor beginners?
Laravel is geschikt voor beginners die de basis van PHP al kennen, omdat de code leesbaar is en de officiële documentatie helder. Laravel heeft ook een grote community, veel tutorials en starterkits die inlogpagina's voor je opzetten. Eerst gewoon PHP leren maakt het framework veel makkelijker te begrijpen.
Hoe installeer ik Laravel op mijn computer?
Je installeert Laravel door eerst PHP en Composer te installeren en daarna composer create-project laravel/laravel uit te voeren, gevolgd door de naam van je project. De Laravel-installer, aangeroepen met laravel new, doet hetzelfde en biedt starterkits aan. Daarna start php artisan serve een lokale server, zodat je de app in je browser kunt openen.
Welke PHP-versie heeft Laravel nodig?
Laravel heeft een recente PHP 8-versie nodig, en elke Laravel-release vermeldt de laagste PHP-versie die ze ondersteunt. Nieuwere Laravel-releases laten oudere PHP-versies vallen zodra die geen beveiligingsondersteuning meer krijgen. Controleer altijd de upgradegids van de Laravel-versie die je wilt gebruiken.
Wat is routing in Laravel?
Routing in Laravel koppelt een webadres en een HTTP-methode, zoals GET of POST, aan de code die het verzoek beantwoordt. Routes staan in bestanden zoals routes/web.php voor pagina's en routes/api.php voor API's. Een route kan een closure of een controllermethode aanroepen en middleware meekrijgen voor inloggen en andere controles.
Wat is Eloquent in Laravel?
Eloquent is de ORM van Laravel, het onderdeel waarmee je databasetabellen behandelt als PHP-klassen die modellen heten. Elk model hoort bij een tabel en elk object bij een rij, zodat je gegevens leest en opslaat zonder SQL te schrijven. Eloquent regelt ook relaties zoals een-op-veel en veel-op-veel.
Hoe werken Eloquent-relaties in Laravel?
Eloquent-relaties in Laravel zijn methoden op een model, zoals hasMany, belongsTo en belongsToMany, die beschrijven hoe twee tabellen aan elkaar zijn gekoppeld. Zodra ze zijn gedefinieerd, lees je gerelateerde gegevens zoals $order->customer zonder een join te schrijven. Eager loading met de methode with laadt gerelateerde rijen in één keer en voorkomt trage herhaalde query's.
Wat is het N+1-queryprobleem in Laravel?
Het N+1-queryprobleem in Laravel ontstaat als code een lijst records laadt en daarna voor elk record een extra query uitvoert om gerelateerde gegevens op te halen. Een pagina met 100 bestellingen voert dan 101 query's uit en wordt traag. Eager loading met de methode with lost het probleem op door de gerelateerde rijen in één query op te halen.
Wat zijn migraties in Laravel?
Migraties in Laravel zijn PHP-bestanden die databasetabellen in code aanmaken en wijzigen. Met php artisan migrate voer je ze uit, zodat elke ontwikkelaar en elke server dezelfde databasestructuur krijgt. Omdat migraties in versiebeheer staan, blijft de geschiedenis van elke tabelwijziging bewaard.
Wat is Blade in Laravel?
Blade is de template-engine van Laravel om HTML-pagina's te schrijven met eenvoudige tags voor lussen, voorwaarden en lay-outs. Blade escapet getoonde waarden standaard, wat pagina's beschermt tegen cross-site scripting. Templates worden gecompileerd naar gewoon PHP en gecachet, dus Blade voegt bijna niets toe aan elk verzoek.
Hoe werkt authenticatie in Laravel?
Authenticatie in Laravel werkt met guards die controleren wie de gebruiker is en providers die gebruikers uit de database laden. Starterkits zoals Laravel Breeze voegen kant-en-klare pagina's toe voor inloggen, registreren en wachtwoordherstel. Wachtwoorden worden gehasht met bcrypt of Argon2, zodat ze nooit als leesbare tekst worden opgeslagen.
Wat is het verschil tussen Laravel Sanctum en Laravel Passport?
Laravel Sanctum biedt eenvoudig inloggen met tokens en cookies voor single page apps, mobiele apps en eenvoudige API's, terwijl Laravel Passport een volledige OAuth2-server is. De meeste projecten hebben alleen Sanctum nodig, omdat het lichter en makkelijker in te stellen is. Passport past bij gevallen waarin externe applicaties namens je gebruikers moeten inloggen.
Wat is middleware in Laravel?
Middleware in Laravel zijn lagen die een verzoek controleren of aanpassen voordat het je code bereikt, of een antwoord voordat het vertrekt. Veelgebruikte middleware regelt inlogcontroles, CSRF-bescherming, rate limiting en taalinstellingen. Je kunt middleware koppelen aan losse routes, groepen routes of de hele applicatie.
Hoe werken wachtrijen in Laravel?
Wachtrijen in Laravel halen trage taken, zoals e-mail versturen of rapporten maken, uit het webverzoek en zetten ze in jobs op de achtergrond. Een job gaat naar een wachtrijdriver zoals Redis of de database, en een worker die je start met php artisan queue:work voert hem uit. De gebruiker krijgt snel antwoord terwijl het zware werk op de achtergrond afloopt.
Wanneer gebruik ik wachtrijen in een Laravel-applicatie?
Gebruik wachtrijen in een Laravel-applicatie zodra een taak langer dan een ogenblik duurt of met een externe dienst praat, zoals e-mail, bestandsverwerking of betaalwebhooks. Wachtrijen houden pagina's snel en laten mislukte jobs vanzelf opnieuw proberen. Laravel Horizon geeft een dashboard om Redis-wachtrijen te volgen.
Hoe plan ik taken in Laravel?
Je plant taken in Laravel door ze in de scheduler te definiëren met methoden zoals daily of everyFiveMinutes en daarna elke minuut php artisan schedule:run uit te voeren via één cron-regel op de server. De scheduler beslist vervolgens welke taken aan de beurt zijn. Zo staan alle getimede taken in code in plaats van in veel losse cron-regels.
Hoe valideer ik formuliergegevens in Laravel?
Je valideert formuliergegevens in Laravel met de methode validate op het verzoek of met een Form Request-klasse die de regels bevat. Regels zoals required, email, max en unique controleren elk veld voordat je code het gebruikt. Als de validatie faalt, stuurt Laravel de gebruiker terug met de foutmeldingen en de eerder ingevulde waarden.
Hoe beschermt Laravel tegen veelvoorkomende webaanvallen?
Laravel beschermt tegen veelvoorkomende webaanvallen met CSRF-tokens op formulieren, geëscapete uitvoer in Blade, parameterbinding in databasequery's en gehashte wachtwoorden. Deze standaardinstellingen blokkeren bij normaal gebruik cross-site request forgery, cross-site scripting en SQL-injectie. Ontwikkelaars moeten nog steeds invoer valideren, rechten controleren en het framework bijwerken.
Hoe zet ik een Laravel-applicatie op een server?
Je zet een Laravel-applicatie op een server door de code naar de server te halen, composer install zonder dev-pakketten uit te voeren, het .env-bestand in te stellen en de migraties te draaien. Daarna cache je de config, routes en views en laat je de webserver naar de map public wijzen. Veel teams automatiseren deze stappen vanuit Git, zodat elke release hetzelfde verloopt.
Welke server heeft een Laravel-applicatie nodig?
Een Laravel-applicatie heeft een server nodig met PHP, een webserver zoals Nginx of Apache, een database zoals MySQL of PostgreSQL en Composer. Vaak komt Redis erbij voor cache en wachtrijen, en een procesmanager houdt de queue workers draaiende. Hostrena, het hostingmerk van Linkysoft, biedt hosting voor Laravel-webapps die direct vanuit Git worden uitgerold.
Hoe maak ik een Laravel-applicatie sneller?
Je maakt een Laravel-applicatie sneller door de config, routes en views te cachen, relaties met eager loading te laden en indexen toe te voegen aan de databasekolommen waarop je zoekt. Traag werk naar wachtrijen verplaatsen en zware queryresultaten in Redis cachen helpt nog meer. PHP OPcache op de server aanzetten levert met weinig moeite veel winst op.
Hoe test ik een Laravel-applicatie?
Je test een Laravel-applicatie met PHPUnit of Pest, die in elk nieuw project al klaarstaan. Feature tests sturen nepverzoeken naar je routes en controleren het antwoord en de database, terwijl unit tests losse klassen controleren. Met php artisan test draai je de hele testsuite.
Kan Laravel grote applicaties met veel gebruikers aan?
Laravel kan grote applicaties met veel gebruikers aan als het draait op goede servers met caching, wachtrijen, database-indexen en meer dan één applicatieserver achter een load balancer. Het framework zelf is zelden de grens, trage query's en ontbrekende caches zijn dat meestal wel. Linkysoft bouwt daarom webapplicaties op maat met PHP, Laravel, MySQL en Redis.
Hoe vaak moet ik mijn Laravel-versie upgraden?
Upgrade je Laravel-versie in elk geval voordat je huidige versie geen beveiligingsfixes meer krijgt. Laravel brengt ongeveer eens per jaar een hoofdversie uit, en elke versie heeft een upgradegids. Kleine, regelmatige upgrades zijn veel makkelijker dan in één keer meerdere versies overslaan.