Een Laravel-project maken en uitvoeren in ServBay
Overzicht
ServBay is een krachtige lokale webontwikkelomgeving, speciaal ontworpen voor macOS. Het wordt geleverd met een breed scala aan populaire softwarepakketten, waaronder PHP, Node.js, Python, Go, Java, diverse databases (MySQL, PostgreSQL, MongoDB), cachingdiensten (Redis, Memcached), en webservers (Caddy, Nginx, Apache).
Deze documentatie begeleidt je bij het snel opzetten, configureren en draaien van een Laravel-project binnen de ServBay-omgeving. We maken gebruik van de ingebouwde PHP-omgeving, de Composer package manager en het uitgebreide beheer van websites (voorheen 'hosts') om het hele proces te stroomlijnen.
Wat is Laravel?
Laravel is een populair open-source PHP webapplicatie framework, ontwikkeld door Taylor Otwell. Het volgt het MVC-architectuurpatroon (Model-View-Controller) en biedt veel direct bruikbare functionaliteiten om veelvoorkomende webontwikkelingstaken, zoals authenticatie, routing, sessiebeheer, caching en database-interactie, te vereenvoudigen. Dankzij de elegante syntax, rijke functionaliteit en sterke community-ondersteuning is Laravel de ideale keuze voor het bouwen van moderne, onderhoudbare webapplicaties.
Belangrijkste kenmerken en voordelen van Laravel
- Elegante syntax: Schone, expressieve code die de ontwikkelsnelheid en leesbaarheid verhoogt.
- Eloquent ORM: Krachtige ActiveRecord-implementatie voor eenvoudige en intuïtieve database-interactie.
- Artisan-console: Veel handige commandoregeltools voor bijvoorbeeld database-migraties, codegeneratie en testen.
- Blade-templating engine: Eenvoudige templating syntax voor het bouwen van dynamische views.
- Uitgebreid ecosysteem: Veel officiële en community-packages, eenvoudig te integreren via Composer.
- Sterke community-ondersteuning: Actieve community biedt veel resources, tutorials en oplossingen.
Voordelen van Laravel-ontwikkeling met ServBay
ServBay biedt Laravel-ontwikkelaars optimale gemak:
- Geïntegreerde omgeving: ServBay wordt geleverd met meerdere PHP-versies, Composer, en veelgebruikte databases en cachingdiensten. Losse installatie en configuratie is dus niet nodig.
- Eenvoudig beheer: Via de grafische interface van ServBay kan je eenvoudig PHP-versies wisselen, je websites beheren, en services starten/stoppen.
- Gebruiksklare webserver: Caddy is standaard geconfigureerd, geoptimaliseerd voor bekende PHP-frameworks inclusief Laravel, waardoor je serverconfiguratie aanzienlijk eenvoudiger wordt.
- HTTPS-ondersteuning: ServBay configureert automatisch SSL-certificaten van de ServBay User CA voor
.local
-domeinen, met standaard HTTPS-ondersteuning. Zo ontwikkel je lokaal veiliger, meer vergelijkbaar met productieomgevingen.
Een Laravel-project aanmaken
Het is aanbevolen om je webprojecten binnen de map /Applications/ServBay/www
te bewaren voor een overzichtelijke en uniforme structuur.
Controleer of Composer is geïnstalleerd
Composer wordt standaard meegeleverd met ServBay; je hoeft het dus niet apart te installeren. Controleer in je terminal of Composer beschikbaar is:
bashcomposer --version
1Als het versienummer verschijnt heb je Composer correct geïnstalleerd.
Een nieuw Laravel-project aanmaken
Open de terminal, ga naar de aanbevolen website-map, en maak een nieuw Laravel-project aan met Composer. We gebruiken als naam
servbay-laravel-app
:bashcd /Applications/ServBay/www # Maak de projectfolder aan mkdir servbay-laravel-app # Ga naar de map cd servbay-laravel-app # Maak het Laravel-project aan in de huidige map composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer zal Laravel en alle afhankelijkheden downloaden en installeren.
Navigeren naar de projectmap
Zorg dat je terminal zich bevindt in de root van het nieuwe Laravel-project:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Initiële configuratie
Genereer de app-sleutel
Laravel gebruikt een app-sleutel voor het beveiligen van sessies en het versleutelen van data. Genereer de sleutel in de hoofdmap van het project (
/Applications/ServBay/www/servbay-laravel-app
) met het Artisan-commando:bashphp artisan key:generate
1Hiermee wordt de waarde voor
APP_KEY
automatisch in het.env
-bestand gezet.Omgevingsvariabelen (
.env
) instellenLaravel beheert projectomgevingen via het
.env
-bestand, zoals databaseverbindingen en de applicatie-URL. Pas dit bestand aan je voorkeuren aan. Zorg dat deze basisinstellingen correct staan:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Deze waarde is zojuist door php artisan key:generate aangemaakt APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Databasevoorbeeld (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Naam van je gewenste database DB_USERNAME=root # Standaard ServBay databasegebruiker DB_PASSWORD=password # Standaard ServBay databasewachtwoord # Cache/Queue voorbeeld (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBay Redis heeft standaard geen wachtwoord REDIS_PORT=6379 # Cache/Queue voorbeeld (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Let op: Pas eventueel de instellingen voor
DB_*
,REDIS_*
ofMEMCACHED_*
aan naar het type database of service dat je gebruikt. De standaard ServBay databasegebruikersnaam en wachtwoord vind je terug in het ServBay-configuratiescherm.
Webserver configureren (website toevoegen in ServBay)
Gebruik de websitebeheerfunctie van ServBay om de webserver te configureren, en wijs je domein toe aan de public
-map van je Laravel-project.
Start het ServBay-configuratiescherm
Start de ServBay-app en open het bedieningspaneel.
Voeg een nieuwe website toe
Ga naar het gedeelte 'Websites'. Klik op de toevoegen-knop (meestal een
+
of soortgelijk icoon).Websitegegevens invullen
Vul de website-instellingen zoals hieronder in:
- Name:
My First Laravel Dev Site
(een herkenbare naam) - Domein (Domain):
servbay-laravel-test.local
(de URL waarmee je de site wilt bezoeken) - Site Type:
PHP
- PHP-versie: Kies een PHP-versie die past bij jouw versie van Laravel, bijvoorbeeld
8.3
. - Site Root:
/Applications/ServBay/www/servbay-laravel-app/public
(Belangrijk: Wijs altijd naar depublic
-map in de hoofdmap van je project)
Voor meer details, zie de officiële ServBay-documentatie over het toevoegen van je eerste website (zoek eventueel de Engelstalige versie).
- Name:
Opslaan en wijzigingen toepassen
Sla de instellingen op. ServBay zal automatisch de webserverconfiguratie (standaard Caddy) bijwerken. Start de webserver opnieuw op als daarom gevraagd wordt.
Basisfunctionaliteit verifiëren
Je Laravel-project is nu bereikbaar op het gespecificeerde domein.
Open je browser
Navigeer naar de gekozen domeinnaam, bijvoorbeeld
https://servbay-laravel-test.local
.Bekijk het resultaat
Als alles goed is ingesteld, verschijnt de Laravel welkomstpagina.
Simpele voorbeeldcode toevoegen
Om je setup te testen, kun je in routes/web.php
een route toevoegen die "Hello ServBay!" toont.
Open het bestand routes/web.php
in je project en voeg (of wijzig) deze code toe:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Hier kun je web-routes registreren voor je applicatie.
| Deze routes worden geladen door de RouteServiceProvider binnen een groep
| die de "web"-middleware bevat. Tijd om iets moois te maken!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Voeg deze regel toe of pas deze aan
});
// ... overige routes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sla het bestand op en bezoek daarna opnieuw https://servbay-laravel-test.local
. Je zou nu "Hello ServBay!" in je browser moeten zien verschijnen.
Database-integratievoorbeelden
Laravel heeft een krachtige database-abstractielaag en ORM (Eloquent), zodat je gemakkelijk met verschillende databases werkt. ServBay bevat standaard MySQL, PostgreSQL, MongoDB, Redis, Memcached, etc. voor lokale ontwikkeling.
NoSQL databasevoorbeelden
Redis en Memcached zijn standaard geïntegreerd in ServBay, inclusief benodigde PHP-extensies.
Memcached-voorbeeld
Configureer
.env
Stel de Memcached-verbinding in (als dat nog niet is gebeurd):
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Standaard Memcached-poort bij ServBay
1
2
3Gebruik Memcached
Interactie met Memcached via Laravel’s cache-facade, bijvoorbeeld in je routes of controllers:
Voeg in
routes/web.php
deze route toe:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Sla data 10 minuten (600 seconden) op in de cache Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Haal data uit de cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcached data: " . $value; } else { return "Memcached data bestaat niet of is verlopen."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Test via
https://servbay-laravel-test.local/memcached-test
.
Redis-voorbeeld
Configureer
.env
Stel de Redis-verbinding in (indien nodig):
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Standaard geen wachtwoord voor Redis in ServBay REDIS_PORT=6379 # Standaard Redis-poort in ServBay
1
2
3
4Let op: Als je zowel Memcached als Redis hebt ingesteld in
.env
, zorg dat slechts één optie tegelijk actief is (door de andere uit te schakelen met een #).Gebruik Redis
Interactie met Redis kan via de Redis- of Cache-facade van Laravel, bijvoorbeeld in je routes:
Voeg in
routes/web.php
toe:phpuse Illuminate\Support\Facades\Redis; // Of, als CACHE_STORE=redis is ingesteld: // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Gebruik Redis-facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Of gebruik Cache-facade als deze is geactiveerd // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Redis data: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Test via
https://servbay-laravel-test.local/redis-test
.
Relationale databases (MySQL & PostgreSQL)
MySQL en PostgreSQL worden standaard met ServBay meegeleverd. Laravel’s Eloquent ORM werkt hier uitstekend mee samen.
Maak eerst een database aan voor je project, bijvoorbeeld servbay_laravel_app
, via een databasebeheerder (phpMyAdmin, Adminer, pgAdmin, etc., te openen via het ServBay-configuratiescherm) of via de terminal.
Gebruik vervolgens de migratiefunctie van Laravel om de databasestructuur op te zetten.
Maak een migratiebestand aan
Voer in de hoofdmap van je project het volgende Artisan-commando uit:
bashphp artisan make:migration create_accounts_table --create=accounts
1In
database/migrations
wordt nu een nieuw bestand aangemaakt.Bewerk het migratiebestand
Open het aangemaakte bestand (naam lijkt op
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) en pas deup
-methode aan voor deaccounts
-tabel:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Voer de migraties uit. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Voegt created_at en updated_at toe }); } /** * Draai de migraties terug. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Sla het bestand op.
Voer de migratie uit
Voer in de hoofdmap van je project het volgende commando uit om de database-tabel te creëren:
bashphp artisan migrate
1Bij een correcte databaseconfiguratie worden nu de
accounts
-tabel en standaard Laravel-tabellen (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
, etc.) aangemaakt.
MySQL-voorbeeld
.env
configureren voor MySQLControleer of de volgende database-instellingen voor MySQL actief zijn:
dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # ServBay-standaardpoort voor MySQL DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # ServBay-standaard wachtwoord
1
2
3
4
5
6Voorbeelddata toevoegen
Voeg aan
routes/web.php
een route toe om data in deaccounts
-tabel te zetten:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account toegevoegd aan MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Bezoek
https://servbay-laravel-test.local/mysql-add-account
om een record toe te voegen.Data uitlezen
Voeg aan
routes/web.php
een route toe om data te lezen:phpuse App\Models\Account; // Indien je een Account-model hebt aangemaakt // Of gebruik direct de DB-facade Route::get('/mysql-accounts', function () { // Via DB-facade $accounts = DB::table('accounts')->get(); // Of via Eloquent ORM, als Account-model bestaat // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Bezoek
https://servbay-laravel-test.local/mysql-accounts
om alle accounts te tonen.
PostgreSQL-voorbeeld
.env
configureren voor PostgreSQLAls je PostgreSQL wilt gebruiken, pas je database-instellingen zo aan:
dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # ServBay-standaardpoort voor PostgreSQL DB_DATABASE=servbay_laravel_app DB_USERNAME=root # ServBay-standaardgebruikersnaam DB_PASSWORD=password # ServBay-standaard wachtwoord
1
2
3
4
5
6Let op: Na het wisselen van databaseverbinding kun je
php artisan migrate:refresh
ofphp artisan migrate
uitvoeren voor een schone opzet in PostgreSQL.Data toevoegen (PostgreSQL)
Voeg in
routes/web.php
een route toe om data toe te voegen:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account toegevoegd aan PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Bezoek
https://servbay-laravel-test.local/pgsql-add-account
om een record toe te voegen.Data uitlezen (PostgreSQL)
Voeg deze route toe in
routes/web.php
om gegevens op te halen:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Bezoek
https://servbay-laravel-test.local/pgsql-accounts
om de records te bekijken.
Samenvatting
Met ServBay kun je eenvoudig een lokale ontwikkelomgeving op macOS opzetten voor het bouwen en uitvoeren van Laravel-projecten. Dankzij de voorgeïntegreerde PHP, Composer, Caddy-webserver en diverse databases en cachingdiensten verloopt de setup soepel. In slechts enkele stappen maak je een nieuw Laravel-project aan, stel je de webserver in en start je gelijk met ontwikkelen. Je kunt daarnaast makkelijk databases en cachingfuncties integreren en testen. ServBay biedt ontwikkelaars zo een efficiënte, comfortabele lokale ontwikkelervaring.
Loop je tegen problemen aan? Raadpleeg dan gerust de officiële ServBay-documentatie of zoek hulp in de community.