Laravel
Overzicht
Laravel is een PHP-webapplicatieframework met een expressieve, elegante syntaxis. Deze handleiding leidt je van begin tot eind door het implementeren van een Laravel-applicatie op het NStrim-platform.
Snelstart
Repository aanmaken vanuit sjabloon
Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het Laravel-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".
Je repository klonen
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Afhankelijkheden installeren
composer install
Omgeving configureren
Kopieer het voorbeeld-omgevingsbestand en configureer je database (zie de gedetailleerde instructies hieronder):
cp .env.example .env
php artisan key:generate
Migraties uitvoeren & pushen
php artisan migrate
git add .
git commit -m "Initial setup"
git push origin main
Lokale ontwikkeling met Docker
Als je geen PHP lokaal hebt geïnstalleerd, kun je Docker gebruiken om Laravel-commando's uit te voeren. Het project bevat een Dockerfile die alles opzet wat je nodig hebt.
Vereisten
Installeer Docker Desktop voor jouw besturingssysteem (Windows, Mac of Linux).
Commando's uitvoeren met Docker
In plaats van php artisan migrate direct uit te voeren, voer je het uit in een Docker-container:
# Build the Docker image (only needed once)
docker build -t laravel-app .
# Run any artisan command
docker run --rm laravel-app php artisan migrate
# Run composer install
docker run --rm -v $(pwd):/var/www/html laravel-app composer install
# Interactive shell inside container
docker run --rm -it -v $(pwd):/var/www/html laravel-app bash
Databaseconfiguratie
Het NStrim-platform biedt je een MySQL/MariaDB-database. Je moet je .env-bestand configureren met de juiste database-inloggegevens om verbinding te maken.
Waarom de database configureren?
Laravel gebruikt een .env-bestand om omgevingsspecifieke configuratie op te slaan. Standaard gebruikt het sjabloon SQLite (een bestandsgebaseerde database), maar NStrim biedt MySQL voor betere prestaties en compatibiliteit met realistische scenario's.
Stap-voor-stap configuratie
Open je .env-bestand
Open het .env-bestand in de hoofdmap van je project met je code-editor.
Vind het databasegedeelte
Zoek naar deze regels (meestal rond regel 23):
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Bijwerken met je inloggegevens
Vervang met de inloggegevens uit je dashboard:
DB_CONNECTION=mysql
DB_HOST=db.<session-domain>
DB_PORT=3306
DB_DATABASE=<your-username>
DB_USERNAME=<your-username>
DB_PASSWORD=<your-password>
student01). Controleer het inloggegevens-gedeelte van je dashboard voor de exacte waarden.Voorbeeldconfiguratie
Als je gebruikersnaam student01 is en het sessiedomein demo.nstrim.app:
DB_CONNECTION=mysql
DB_HOST=db.demo.nstrim.app
DB_PORT=3306
DB_DATABASE=student01
DB_USERNAME=student01
DB_PASSWORD=your-password-from-dashboard
Migraties uitvoeren
Migraties zijn de manier waarop Laravel databasetabellen aanmaakt. Voer na het configureren van je database de migraties uit om de vereiste tabellen op te zetten:
php artisan migrate
Als je alle migraties opnieuw wilt instellen en uitvoeren (hierdoor worden alle gegevens verwijderd):
php artisan migrate:fresh
Om migraties uit te voeren met seed-gegevens (als je project seeders heeft):
php artisan migrate:fresh --seed
Projectstructuur
Begrijpen waar bestanden zich bevinden:
├── app/ # Applicatiecode
│ ├── Http/
│ │ └── Controllers/ # Hier komen je controllers
│ └── Models/ # Eloquent Models
├── config/ # Configuratiebestanden
├── database/
│ ├── migrations/ # Database-migraties
│ └── seeders/ # Database-seeders
├── public/ # Publieke assets (CSS, JS, afbeeldingen)
├── resources/
│ └── views/ # Blade-templates
├── routes/
│ └── web.php # Web-routes (URL → Controller)
├── .env # Omgevingsconfiguratie (DB, etc.)
└── composer.json # PHP-afhankelijkheden
Veelvoorkomende taken
Een nieuwe controller aanmaken
php artisan make:controller ProductController
Een nieuw model met migratie aanmaken
php artisan make:model Product -m
Een route toevoegen
Bewerk routes/web.php:
Route::get('/products', [ProductController::class, 'index']);
Cache wissen
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Handige commando's
php artisan serve
Lokale ontwikkelingsserver starten
php artisan migrate
Database-migraties uitvoeren
php artisan migrate:status
Migratiestatus controleren
php artisan make:controller
Een nieuwe controller aanmaken
php artisan make:model -m
Model met migratie aanmaken
php artisan route:list
Alle geregistreerde routes opsommen
php artisan tinker
Interactieve PHP-shell voor testen
Probleemoplossing
SQLSTATE[HY000] [2002] Connection refused
Oorzaak: Database-host is onjuist of databaseserver is niet bereikbaar.
Oplossing: Controleer of DB_HOST in je .env-bestand overeenkomt met de database-host uit je dashboard (meestal db.<session-domain>).
SQLSTATE[HY000] [1045] Access denied for user
Oorzaak: Verkeerde gebruikersnaam of wachtwoord.
Oplossing: Controleer of DB_USERNAME en DB_PASSWORD exact overeenkomen met wat in je dashboard wordt getoond. Wachtwoorden zijn hoofdlettergevoelig!
SQLSTATE[HY000] [1049] Unknown database
Oorzaak: Databasenaam bestaat niet.
Oplossing: Verifieer dat DB_DATABASE is ingesteld op je gebruikersnaam (bijv. student01). Je database is vooraf aangemaakt met dezelfde naam als je gebruikersnaam.
No application encryption key has been specified
Oorzaak: De APP_KEY ontbreekt in .env.
Oplossing: Voer php artisan key:generate uit om een nieuwe sleutel te genereren.
Class 'App\Http\Controllers\...' not found
Oorzaak: De autoloader kent je nieuwe class niet.
Oplossing: Voer composer dump-autoload uit om de autoloader opnieuw te genereren.
Page shows old content after changes
Oorzaak: Laravel cachet views of configuratie.
Oplossing: Wis alle caches:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
500 Server Error after deployment
Oorzaak: Meestal een configuratieprobleem of ontbrekende afhankelijkheden.
Oplossing: Controleer of:
.env-bestand bestaat en de juiste waarden heeft- APP_KEY is ingesteld (voer
php artisan key:generateuit) - Alle afhankelijkheden zijn geïnstalleerd (
composer install) - Database-inloggegevens correct zijn
Je database controleren
Je kunt phpMyAdmin gebruiken om je database visueel te beheren. Klik op de knop MySQL op je dashboard om phpMyAdmin te openen. Log in met dezelfde inloggegevens die op je dashboard worden getoond.
Vanuit phpMyAdmin kun je:
- Alle door migraties aangemaakte tabellen bekijken
- Gegevens direct bladeren en bewerken
- Aangepaste SQL-query's uitvoeren
- Database-gegevens exporteren/importeren
Implementatie-workflow
Elke keer dat je code naar Git pusht, wordt je applicatie automatisch geïmplementeerd:
De URL van je geïmplementeerde applicatie volgt dit formaat:
https://<your-subdomain>-<repo-name>.<session-domain>
Voorbeeld: https://student01-module-a.demo.nstrim.app