Créer et exécuter un projet Laravel avec ServBay
Aperçu
ServBay est un environnement de développement web local puissant conçu spécifiquement pour macOS. Il intègre de nombreux outils populaires, notamment PHP, Node.js, Python, Go, Java, plusieurs bases de données (MySQL, PostgreSQL, MongoDB), systèmes de cache (Redis, Memcached), ainsi que des serveurs web comme Caddy, Nginx et Apache.
Ce guide vous montrera comment créer, configurer et lancer rapidement un projet Laravel dans l'environnement ServBay. Nous utiliserons l'environnement PHP natif de ServBay, le gestionnaire de paquets Composer, et la puissante gestion de sites web intégrée (anciennement appelée "Hôte") pour simplifier l'ensemble du processus.
Qu'est-ce que Laravel ?
Laravel est un framework PHP open-source très populaire, créé par Taylor Otwell. Il suit le modèle d'architecture MVC (Modèle-Vue-Contrôleur) et propose de nombreuses fonctionnalités prêtes à l'emploi conçues pour faciliter les tâches courantes du développement web : authentification utilisateur, routage, gestion de session, cache et interactions avec la base de données. Laravel est reconnu pour sa syntaxe élégante, son écosystème riche, et la force de sa communauté. C'est un excellent choix pour créer des applications web modernes et maintenables.
Principales fonctionnalités et atouts de Laravel
- Syntaxe élégante: Code concis et expressif, augmentant la productivité et la lisibilité.
- Eloquent ORM: Fournit une puissante implémentation ActiveRecord, facilitant l'accès et la manipulation de la base de données.
- Console Artisan: Offre de nombreux outils en ligne de commande pour effectuer des migrations, générer du code, exécuter des tests, etc.
- Moteur de templates Blade: Syntaxe claire pour créer des vues dynamiques de manière efficace.
- Écosystème riche: De nombreux paquets officiels et communautaires facilement intégrables via Composer.
- Communauté dynamique: Ressources abondantes, tutoriels, solutions et support communautaire actif.
Avantages de développer un projet Laravel avec ServBay
ServBay facilite énormément le travail des développeurs Laravel :
- Environnement intégré : ServBay propose plusieurs versions de PHP, Composer, et les bases de données/systèmes de cache les plus courants préinstallés, sans configuration manuelle.
- Gestion simplifiée : Par son interface graphique, ServBay permet de changer facilement la version de PHP, gérer la configuration des sites et démarrer/arrêter les services.
- Serveur web préconfiguré : ServBay utilise Caddy par défaut, pré-optimisé pour les frameworks PHP courants (dont Laravel), simplifiant ainsi la configuration.
- Support HTTPS: Pour chaque domaine en
.local
, ServBay configure automatiquement des certificats SSL délivrés par la CA utilisateur ServBay, permettant le HTTPS par défaut pour un environnement local sécurisé et proche de la production.
Création d'un projet Laravel
Il est recommandé par ServBay de placer tous vos projets de sites web dans le répertoire /Applications/ServBay/www
afin de garder une structure claire et facile à gérer.
Vérifier l'installation de Composer
Composer est installé automatiquement avec ServBay. Vous n’avez donc aucune action à faire. Pour vérifier la disponibilité de Composer via le terminal :
bashcomposer --version
1Si la commande affiche normalement la version, Composer est prêt à l'emploi.
Créer un nouveau projet Laravel
Ouvrez le terminal, naviguez jusqu'au dossier recommandé, puis utilisez Composer pour générer un nouveau projet Laravel (nommé ici
servbay-laravel-app
) :bashcd /Applications/ServBay/www # Créez le dossier du projet mkdir servbay-laravel-app # Accédez au dossier cd servbay-laravel-app # Installez Laravel dans le dossier courant via Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer téléchargera puis installera Laravel et toutes ses dépendances.
Aller dans le dossier du projet
Vérifiez que votre terminal pointe bien à la racine du projet Laravel :
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Initialisation et configuration
Générer la clé d’application
Laravel utilise une clé pour sécuriser les sessions et chiffrer les données. Depuis le répertoire racine (
/Applications/ServBay/www/servbay-laravel-app
), générez cette clé avec Artisan :bashphp artisan key:generate
1Cette commande crée et renseigne la valeur
APP_KEY
dans le fichier.env
.Configurer les variables d'environnement (
.env
)Le fichier
.env
gère les paramètres d’environnement du projet : connexion à la base de données, URL de l’application, etc. Ouvrez ce fichier à la racine et adaptez-le selon vos besoins. Voici une configuration type :dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Générez cette clé via php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Exemple de configuration MySQL DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nom de la base à utiliser DB_USERNAME=root # Identifiant par défaut sur ServBay DB_PASSWORD=password # Mot de passe par défaut sur ServBay # Exemple de configuration cache/queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Par défaut sur ServBay, pas de mot de passe Redis REDIS_PORT=6379 # Exemple de configuration cache/queue (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
26Remarque : Adaptez les valeurs
DB_*
,REDIS_*
ouMEMCACHED_*
en fonction de la base ou du service réellement utilisé. Les identifiants par défaut de ServBay sont consultables dans le panneau de configuration ServBay.
Paramétrage du serveur web (ajout d'un site dans ServBay)
Utilisez la gestion des sites de ServBay pour configurer le serveur web et associer votre domaine au dossier public
de votre projet Laravel.
Ouvrir le panneau de contrôle ServBay
Lancez ServBay et ouvrez le panneau de contrôle.
Ajouter un nouveau site
Allez dans la section "Sites web" du panneau ServBay. Cliquez sur le bouton d’ajout (
+
ou une icône similaire) pour créer un nouveau site.Remplir les informations du site
Exemple de configuration :
- Nom (Name):
My First Laravel Dev Site
(nom interne pour votre repère) - Domaine (Domain):
servbay-laravel-test.local
(l’adresse à saisir dans le navigateur) - Type de site (Site Type):
PHP
- Version PHP (PHP Version): Choisissez la version adaptée à votre Laravel, par exemple
8.3
. - Racine du site (Site Root):
/Applications/ServBay/www/servbay-laravel-app/public
(Important : doit pointer sur le dossierpublic
du projet Laravel)
Pour plus d’options, voir la documentation officielle de ServBay : Ajouter un premier site (lien à rechercher en anglais).
- Nom (Name):
Sauvegarder et appliquer les changements
Enregistrez la configuration. ServBay mettra automatiquement à jour la configuration de son serveur web (par défaut, Caddy). Si un redémarrage est requis, suivez les instructions à l’écran.
Vérification de l'accès au site
Votre projet Laravel devrait désormais être accessible via le domaine configuré.
Ouvrir un navigateur
Entrez l’URL de votre domaine, par exemple
https://servbay-laravel-test.local
.Contrôler le résultat
Si tout est en place, la page d’accueil de Laravel devrait s’afficher.
Ajout d'un exemple de code simple
Pour une vérification visuelle, ajoutons une route simple dans routes/web.php
pour afficher "Hello ServBay!".
Ouvrez le fichier routes/web.php
du projet et ajoutez/modifiez le code ainsi :
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Ici, vous pouvez enregistrer les routes web de votre application. Elles
| sont chargées par le RouteServiceProvider dans un groupe qui contient le
| middleware "web". Commencez dès maintenant !
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Ajoutez ou modifiez cette ligne
});
// ... autres 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
Enregistrez et rechargez https://servbay-laravel-test.local
. Vous devriez voir Hello ServBay!
affiché dans le navigateur.
Exemple d'intégration de base de données
Laravel fournit une couche d’abstraction de base de données puissante via Eloquent (ORM). ServBay inclut MySQL, PostgreSQL, MongoDB, Redis, Memcached, facilitant ainsi vos tests en local.
Exemple base NoSQL
ServBay intègre par défaut Redis et Memcached avec les extensions PHP requises.
Exemple avec Memcached
Configurer
.env
Indiquez les paramètres Memcached dans le fichier
.env
(si ce n’est pas déjà fait) :dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Port Memcached par défaut sur ServBay
1
2
3Utiliser Memcached
Dans une route ou un contrôleur Laravel, accédez facilement à Memcached via le facade Cache. Exemple à insérer dans
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Stocker une valeur dans le cache pour 10 minutes (600 secondes) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Récupérer la valeur du cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Donnée Memcached : " . $value; } else { return "La donnée Memcached n'existe pas ou a expiré."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Rendez-vous sur
https://servbay-laravel-test.local/memcached-test
pour tester.
Exemple avec Redis
Configurer
.env
Renseignez les paramètres Redis dans
.env
(si ce n’est pas déjà fait) :dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Aucun mot de passe Redis par défaut sur ServBay REDIS_PORT=6379 # Port par défaut Redis sur ServBay
1
2
3
4Remarque : Si vous avez à la fois Memcached et Redis dans
.env
, veillez à activer un seul service à la fois en commentant l’autreCACHE_STORE
.Utiliser Redis
Exploitez le facade Redis ou Cache depuis vos routes/contrôleurs pour manipuler les données Redis. Exemple à ajouter à
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // Ou utilisez Cache (si CACHE_STORE=redis) // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Via Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Ou via Cache facade (si CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Donnée Redis : " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Testez sur
https://servbay-laravel-test.local/redis-test
.
Exemple base de données relationnelle (MySQL & PostgreSQL)
ServBay propose automatiquement des serveurs MySQL et PostgreSQL. L’ORM Eloquent de Laravel facilite la connexion.
Commencez par créer une base de données pour le projet avec un outil graphique (phpMyAdmin, Adminer, pgAdmin, disponibles via ServBay) ou en ligne de commande, nommée servbay_laravel_app
.
Poursuivons avec la création d’un schéma via les migrations Laravel.
Générer un fichier de migration
Depuis la racine du projet, lancez Artisan pour créer une migration :
bashphp artisan make:migration create_accounts_table --create=accounts
1Un nouveau fichier sera généré dans
database/migrations
.Éditer la migration
Ouvrez le fichier (ex :
YYYY_MM_DD_HHMMSS_create_accounts_table.php
) et complétez la méthodeup
pour structurer la tableaccounts
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Exécute la migration. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Ajoute created_at et updated_at }); } /** * Annule la migration. */ 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
29Sauvegardez.
Exécuter les migrations
Enracinez-vous à la racine du projet puis lancez :
bashphp artisan migrate
1Si la connexion et la base
servbay_laravel_app
sont opérationnelles, cette commande créera la tableaccounts
ainsi que les tables standards Laravel :users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
, etc.
Exemple MySQL
Configurer
.env
pour MySQLVérifiez que les paramètres pointent vers MySQL dans
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Port MySQL par défaut ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Mot de passe par défaut ServBay
1
2
3
4
5
6Écrire des données d’exemple
Ajoutez une route à
routes/web.php
pour insérer un enregistrement dansaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Compte ajouté à MySQL !'; });
1
2
3
4
5
6
7
8
9
10
11Rendez-vous sur
https://servbay-laravel-test.local/mysql-add-account
pour tester l’insertion.Lire des données d’exemple
Ajoutez une route pour lire le contenu de la table
accounts
:phpuse App\Models\Account; // Si vous avez généré le modèle Account // Ou directement via le facade DB Route::get('/mysql-accounts', function () { // Via le facade DB $accounts = DB::table('accounts')->get(); // Ou via l’ORM Eloquent (si le modèle existe) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Rendez-vous sur
https://servbay-laravel-test.local/mysql-accounts
pour afficher les données.
Exemple PostgreSQL
Configurer
.env
pour PostgreSQLPour utiliser PostgreSQL, ajustez la config dans
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Port PostgreSQL par défaut ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Identifiant par défaut PostgreSQL sur ServBay DB_PASSWORD=password # Mot de passe par défaut PostgreSQL sur ServBay
1
2
3
4
5
6Remarque : Après modification, il peut être nécessaire de relancer
php artisan migrate:refresh
ouphp artisan migrate
pour (re)créer les tables sur PostgreSQL.Insertion d’exemple (PostgreSQL)
Ajoutez une route pour insérer dans PostgreSQL :
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Compte ajouté à PostgreSQL !'; });
1
2
3
4
5
6
7
8
9
10
11Rendez-vous sur
https://servbay-laravel-test.local/pgsql-add-account
pour tester.Lecture d’exemple (PostgreSQL)
Ajoutez une route pour afficher le contenu de la table :
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Rendez-vous sur
https://servbay-laravel-test.local/pgsql-accounts
pour voir les enregistrements.
Conclusion
Avec ServBay, construire et lancer un projet Laravel sur macOS devient simple et rapide. ServBay fournit un environnement complet avec PHP, Composer, le serveur web Caddy et l’intégration de nombreuses bases de données et systèmes de cache, ce qui rend la configuration accessible à tous. En quelques étapes, créez un projet Laravel, configurez votre serveur web et entamez le développement, tout en intégrant et testant aisément la base de données ou le cache. ServBay vise à offrir aux développeurs une expérience locale efficace et conviviale.
Si vous rencontrez des difficultés, consultez la documentation officielle de ServBay ou demandez de l'aide sur la communauté.