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.
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:
De map Http/
De map Http/
Bevat controllers, middleware en form requests.
Vrijwel alle logica voor het afhandelen van requests naar je applicatie komt hier terecht.
De map Models/
De map Models/
Bevat alle Eloquent-model-klassen.
Voor elke databasetabel bestaat een “model” dat je gebruikt om data op te vragen en in te voegen.
De map Providers/
De map Providers/
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.
De map Console/
De map Console/
Bevat al je eigen Artisan-commando’s.
Je genereert ze met het commando
make:command.De map Exceptions/
De map Exceptions/
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.