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.

Voordat je begint
Zorg ervoor dat je dashboard geopend is - je hebt de daar getoonde inloggegevens nodig (gebruikersnaam, wachtwoord en database-verbindingsgegevens).

Snelstart

1

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".

2

Je repository klonen

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Afhankelijkheden installeren

composer install
4

Omgeving configureren

Kopieer het voorbeeld-omgevingsbestand en configureer je database (zie de gedetailleerde instructies hieronder):

cp .env.example .env
php artisan key:generate
5

Migraties uitvoeren & pushen

php artisan migrate
git add .
git commit -m "Initial setup"
git push origin main
Elke push naar Git implementeert automatisch je applicatie. Bekijk je Module Work URL op het dashboard om je live site te zien.

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.

Wat is Docker?
Docker maakt geïsoleerde "containers" met alle software die je nodig hebt (PHP, Composer, Node.js) zonder ze op je computer te installeren. Zie het als een lichtgewicht virtuele machine.

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
Opmerking
Docker is optioneel voor lokale ontwikkeling. Het NStrim-platform handelt de implementatie automatisch af - je hebt Docker alleen nodig als je commando's lokaal wilt uitvoeren zonder PHP geïnstalleerd te hebben.

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

1

Open je .env-bestand

Open het .env-bestand in de hoofdmap van je project met je code-editor.

2

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=
3

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>
Belangrijk
Je databasenaam en gebruikersnaam zijn meestal hetzelfde als je dashboard-gebruikersnaam (bijv. 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:generate uit)
  • 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:

Codewijziging git push Auto-implementatie Live!

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

Voor meer informatie kun je de officiële Laravel-documentatie raadplegen.