Naar de inhoud
Recognized by Laravel Match je project Contact
Laravel

Best practices

Praktische richtlijnen voor herkenbare, onderhoudbare en veilige Laravel-applicaties. Samengesteld voor developers en teams die hun afspraken concreet willen maken.

23 best practices

Geen best practices gevonden

Probeer een andere zoekterm of wis de filters.

Configuratie op de juiste manier gebruiken Het configuratiesysteem van Laravel is ontworpen met een duidelijke regel: environment-variabelen zouden alleen in config-bestanden benaderd moeten worden, en applicatiecode zou altijd config() moeten gebruiken. Dit patroon zorgt ervoor dat... Effectieve migrations schrijven Migrations vormen de versiebeheer voor je databaseschema. Goed geschreven migrations zijn gericht, omkeerbaar en bevatten vanaf het begin de juiste indexering. Omdat migrations bevroren momentopnames zijn, vragen ze om speciale discipline,... Ga correct om met exceptions Laravel biedt flexibele exception handling via twee benaderingen: het co-loceren van gedrag op exception-classes of het centraliseren ervan in bootstrap/app.php. Beide benaderingen werken, de sleutel is er één kiezen en die consistent toepa... Gebruik Action-classes voor businesslogica Kapsel herbruikbare businessoperaties in met één doel gerichte action-classes met expliciete afhankelijkheden. Gebruik caching effectief De cachinglaag van Laravel biedt meerdere patronen die verder gaan dan eenvoudige get/put-operaties. Het correct gebruiken van Cache::remember(), Cache::flexible(), Cache::memo(), once(), cache tags en failover stores kan de prestaties van... Gebruik chunking voor grote datasets Duizenden records tegelijk in het geheugen laden kan leiden tot geheugenuitputting en trage responstijden. Laravel biedt verschillende chunking- en lazy collection-strategieën, chunk(), chunkById(), cursor(), lazy() en lazyById(), die elk g... Gebruik de HTTP Client op de juiste manier De HTTP Client van Laravel (gebouwd op Guzzle) biedt een vloeiende interface voor het maken van HTTP-requests naar externe API's. Correct gebruik betekent het instellen van expliciete timeouts, het implementeren van retry met backoff, het c... Gebruik Eloquent scopes en casts Eloquent biedt local scopes voor herbruikbare query-constraints en attribute casts voor automatische typeconversie. Door deze functies te gebruiken houd je querylogica DRY, zorg je voor consistente datatypes en maak je code expressiever. In... Gebruik Form Request-classes Verplaats de validatie en autorisatie van requests naar toegewijde Form Request-classes in plaats van naar controllers. Gebruik PHPUnit of Pest voor testen Laravel biedt first-class ondersteuning voor zowel PHPUnit als Pest als testframeworks. PHPUnit is het traditionele, class-gebaseerde testframework dat al vele jaren de standaard is in PHP, terwijl Pest een moderne, function-gebaseerde aanp... Gebruik policies en gates voor autorisatie Policies en gates zijn standaardcomponenten binnen Laravel die gebruikt kunnen worden om te bepalen of een actie uitgevoerd mag worden. Gebruik route model binding Laravels impliciete route model binding resolveert Eloquent-modellen automatisch vanuit route-parameters, waardoor handmatige findOrFail()-aanroepen overbodig worden. In combinatie met scoped bindings voor geneste resources en resource cont... Houd commands klein en verplaats business logic naar jobs Laravel console commands moeten lichtgewicht blijven en gericht zijn op het afhandelen van command-line input/output, terwijl complexe business logic naar queued jobs verplaatst moet worden. Dit architectuurpatroon scheidt de verantwoordeli... Houd de standaard mappenstructuur aan Laravel heeft een standaard mappenstructuur. De structuur kan naar wens worden aangepast, maar het is over het algemeen niet aan te raden om hier te veel van af te wijken. Houd je aan één standaard Uiteindelijk maakt het niet zoveel uit *welke* standaard je kiest, zolang je je er maar aan houdt. Alle (eigen) code die in een project wordt geschreven, moet zich eraan houden. Discussies over welke standaard het beste is, kosten vaak meer... Houd je aan een standaard met automatisering Het naleven van een bepaalde standaard kan handmatig of via geautomatiseerde tooling. Deze tooling kan de vorm aannemen van IDE-plugins, git hooks of CI/CD-stappen. Doordat de ontwikkelaar niet hoeft na te 'denken' over de *exacte* regels d... Houd vast aan één testframework Hoewel Pest bovenop PHPUnit is gebouwd en de twee frameworks technisch compatibel zijn, brengt het mengen van beide teststijlen in hetzelfde Laravel-project onnodige complexiteit en verwarring met zich mee. Een consistente testaanpak waarbi... Implementeer een Content Security Policy (CSP) Een Content Security Policy (CSP) is een security header die helpt om Cross-Site Scripting (XSS)-aanvallen en andere code-injectiekwetsbaarheden te voorkomen, door te definiëren welke bronnen van content geladen en uitgevoerd mogen worden i... Vermijd het gebruik van Eloquent-models in migraties Database-migraties zouden ruwe database-queries of Laravels Query Builder (DB-facade) moeten gebruiken in plaats van Eloquent-models. Hoewel het handig kan lijken om models te gebruiken voor datamanipulatie tijdens migraties, kan deze werkw... Volg best practices voor testen Gebruik de test-helpers en -patronen van Laravel die suites sneller, duidelijker en minder foutgevoelig maken. Voorkom N+1 queries Voorkom lazy loading van Eloquent-relaties in loops door gerelateerde data en counts vooraf eager te laden. Voorkom veelvoorkomende kwetsbaarheden Laravel biedt ingebouwde bescherming tegen de meest voorkomende kwetsbaarheden in webapplicaties, maar deze moeten correct worden gebruikt. Dit behandelt essentiële beveiligingspraktijken zoals bescherming tegen mass assignment, het voorkom... Wachtrij-jobs correct configureren Configureer Laravel queue-jobs met veilige timeouts, retries, uniciteit en foutafhandeling voor betrouwbaarheid in productie.