Skip to main content

Aan de slag

De standaard applicatiestructuur van Laravel biedt een goed startpunt voor zowel grote als kleine applicaties. Je bent echter vrij in hoe je je applicatie organiseert. Laravel legt nauwelijks beperkingen op aan de locatie van klassen; zolang Composer de klassen kan autoloaden, is er geen probleem.

De rootmap

Wanneer je een nieuw Laravel-project aanmaakt, wordt de volgende mappenstructuur gegenereerd:

De map app/

Deze map bevat de kerncode van je applicatie. Vrijwel alle klassen van je applicatie — controllers, modellen, middleware — komen hier terecht. Standaard bevat hij de submappen Http, Models en Providers. Wanneer je klassen genereert met Artisan-commando’s, worden andere submappen automatisch aangemaakt.

De map bootstrap/

Bevat het bestand app.php dat het framework opstart. Daarnaast bevat hij een cache/-map met bestanden voor prestatie-optimalisatie, zoals de route- en servicecache.

De map config/

Bevat alle configuratiebestanden van je applicatie. Het is aan te raden deze bestanden door te lezen om te weten welke opties beschikbaar zijn.

De map database/

Bevat de databasemigraties, modelfactories en seeders. Je kunt hier ook je SQLite-databasebestand plaatsen.

De map public/

Bevat index.php, het toegangspunt voor alle requests naar je applicatie. Ook assets zoals afbeeldingen, JavaScript en CSS worden hier opgeslagen.
Stel de documentroot van je webserver in op de map public/ van je Laravel-project. Als je de projectroot of een submap rechtstreeks publiceert, loop je het risico dat vertrouwelijke bestanden worden blootgesteld.

De map resources/

Bevat de views en de ruwe, nog niet gecompileerde assets zoals CSS en JavaScript.

De map routes/

Bevat alle routedefinities van je applicatie. Standaard bevat hij twee routebestanden: web.php en console.php.

De map storage/

Bevat door het framework gegenereerde bestanden zoals logs, gecompileerde Blade-templates, bestandsgebaseerde sessies en bestandscaches. Hij is onderverdeeld in drie submappen: app/, framework/ en logs/.

De map tests/

Bevat je geautomatiseerde tests. Voorbeelden van unit- en featuretests met Pest of PHPUnit zijn vanaf het begin aanwezig.

De map vendor/

Bevat de afhankelijkheden van Composer. Commit deze map niet naar versiebeheer.

De map app/ in detail

Veel klassen in de map app kun je genereren met Artisan-commando’s. Voer het volgende uit om de beschikbare commando’s te bekijken:
Bevat controllers, middleware en form requests. Vrijwel alle logica voor het afhandelen van requests naar je applicatie komt hier terecht.
Bevat alle Eloquent-model-klassen. Voor elke databasetabel bestaat een “model” dat je gebruikt om data op te vragen en in te voegen.
Bevat alle serviceproviders van je applicatie. Serviceproviders binden services aan de container, registreren events en voeren andere taken uit om je applicatie op te starten.
Bevat al je eigen Artisan-commando’s. Je genereert ze met het commando make:command.
Bevat alle aangepaste exceptions van je applicatie. Je genereert ze met het commando make:exception.

Belangrijke bestanden

Het .env-bestand

Beheert configuratiewaarden die per omgeving verschillen (databaseverbindingsgegevens, API-sleutels, enz.). Ze worden vanuit de configuratiebestanden in config/ opgevraagd via de env()-helper.

Het artisan-bestand

Het toegangspunt van de Artisan-commandoregelinterface. Je voert commando’s uit in de vorm php artisan <commandonaam>.

Volgende stappen

Routing

Leer hoe je routes definieert en URL’s koppelt aan applicatielogica.
Laatst gewijzigd op 6 september 2026