Laravel
Aperçu
Laravel est un framework d'application web PHP doté d'une syntaxe expressive et élégante. Ce guide vous accompagne du début à la fin dans le déploiement d'une application Laravel sur la plateforme NStrim.
Démarrage rapide
Créer un dépôt à partir du modèle
Sur votre tableau de bord, allez dans l'onglet Tools & Deployment. Cliquez sur le bouton "New Repository", sélectionnez le modèle Laravel dans le menu déroulant, saisissez un nom de dépôt et un sous-domaine, puis cliquez sur "Create Repository".
Cloner votre dépôt
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Installer les dépendances
composer install
Configurer l'environnement
Copiez le fichier d'environnement d'exemple et configurez votre base de données (voir les instructions détaillées ci-dessous) :
cp .env.example .env
php artisan key:generate
Exécuter les migrations et pousser
php artisan migrate
git add .
git commit -m "Initial setup"
git push origin main
Développement local avec Docker
Si vous n'avez pas PHP installé localement, vous pouvez utiliser Docker pour exécuter les commandes Laravel. Le projet inclut un Dockerfile qui configure tout le nécessaire.
Prérequis
Installez Docker Desktop pour votre système d'exploitation (Windows, Mac ou Linux).
Exécuter des commandes avec Docker
Au lieu d'exécuter php artisan migrate directement, vous l'exécutez à l'intérieur d'un conteneur Docker :
# Construire l'image Docker (nécessaire une seule fois)
docker build -t laravel-app .
# Exécuter n'importe quelle commande artisan
docker run --rm laravel-app php artisan migrate
# Exécuter composer install
docker run --rm -v $(pwd):/var/www/html laravel-app composer install
# Shell interactif dans le conteneur
docker run --rm -it -v $(pwd):/var/www/html laravel-app bash
Configuration de la base de données
La plateforme NStrim met à votre disposition une base de données MySQL/MariaDB. Vous devez configurer votre fichier .env avec les bons identifiants de base de données pour vous connecter.
Pourquoi configurer la base de données ?
Laravel utilise un fichier .env pour stocker la configuration spécifique à l'environnement. Par défaut, le modèle utilise SQLite (une base de données basée sur un fichier), mais NStrim fournit MySQL pour de meilleures performances et une compatibilité avec les scénarios réels.
Configuration étape par étape
Ouvrez votre fichier .env
Ouvrez le fichier .env à la racine de votre projet avec votre éditeur de code.
Trouvez la section base de données
Cherchez ces lignes (généralement autour de la ligne 23) :
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
Mettez à jour avec vos identifiants
Remplacez par les identifiants de votre tableau de bord :
DB_CONNECTION=mysql
DB_HOST=db.<session-domain>
DB_PORT=3306
DB_DATABASE=<your-username>
DB_USERNAME=<your-username>
DB_PASSWORD=<your-password>
student01). Consultez la section identifiants de votre tableau de bord pour les valeurs exactes.Exemple de configuration
Si votre nom d'utilisateur est student01 et le domaine de session est 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
Exécuter les migrations
Les migrations sont la méthode utilisée par Laravel pour créer des tables de base de données. Après avoir configuré votre base de données, exécutez les migrations pour configurer les tables nécessaires :
php artisan migrate
Si vous devez réinitialiser et réexécuter toutes les migrations (cela supprimera toutes les données) :
php artisan migrate:fresh
Pour exécuter les migrations avec des données de seed (si votre projet a des seeders) :
php artisan migrate:fresh --seed
Structure du projet
Comprendre où sont situés les fichiers :
├── app/ # Code de l'application
│ ├── Http/
│ │ └── Controllers/ # Vos contrôleurs vont ici
│ └── Models/ # Modèles Eloquent
├── config/ # Fichiers de configuration
├── database/
│ ├── migrations/ # Migrations de base de données
│ └── seeders/ # Seeders de base de données
├── public/ # Ressources publiques (CSS, JS, images)
├── resources/
│ └── views/ # Templates Blade
├── routes/
│ └── web.php # Routes web (URL → Contrôleur)
├── .env # Configuration d'environnement (BD, etc.)
└── composer.json # Dépendances PHP
Tâches courantes
Créer un nouveau contrôleur
php artisan make:controller ProductController
Créer un nouveau modèle avec migration
php artisan make:model Product -m
Ajouter une route
Modifiez routes/web.php :
Route::get('/products', [ProductController::class, 'index']);
Vider le cache
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Commandes utiles
php artisan serve
Démarrer le serveur de développement local
php artisan migrate
Exécuter les migrations de base de données
php artisan migrate:status
Vérifier l'état des migrations
php artisan make:controller
Créer un nouveau contrôleur
php artisan make:model -m
Créer un modèle avec migration
php artisan route:list
Lister toutes les routes enregistrées
php artisan tinker
Shell PHP interactif pour les tests
Dépannage
SQLSTATE[HY000] [2002] Connection refused
Cause : L'hôte de la base de données est incorrect ou le serveur de base de données n'est pas accessible.
Solution : Vérifiez que DB_HOST dans votre fichier .env correspond à l'hôte de la base de données indiqué sur votre tableau de bord (généralement db.<session-domain>).
SQLSTATE[HY000] [1045] Access denied for user
Cause : Nom d'utilisateur ou mot de passe incorrect.
Solution : Vérifiez que DB_USERNAME et DB_PASSWORD correspondent exactement à ce qui est affiché sur votre tableau de bord. Les mots de passe sont sensibles à la casse !
SQLSTATE[HY000] [1049] Unknown database
Cause : Le nom de la base de données n'existe pas.
Solution : Vérifiez que DB_DATABASE est défini sur votre nom d'utilisateur (par ex. student01). Votre base de données est précréée avec le même nom que votre nom d'utilisateur.
No application encryption key has been specified
Cause : APP_KEY est manquant dans .env.
Solution : Exécutez php artisan key:generate pour générer une nouvelle clé.
Class 'App\Http\Controllers\...' not found
Cause : L'autoloader ne connaît pas votre nouvelle classe.
Solution : Exécutez composer dump-autoload pour régénérer l'autoloader.
La page affiche l'ancien contenu après les modifications
Cause : Laravel met en cache les vues ou la configuration.
Solution : Videz tous les caches :
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Erreur serveur 500 après le déploiement
Cause : Généralement un problème de configuration ou des dépendances manquantes.
Solution : Vérifiez que :
- Le fichier
.envexiste et contient les bonnes valeurs - APP_KEY est défini (exécutez
php artisan key:generate) - Toutes les dépendances sont installées (
composer install) - Les identifiants de la base de données sont corrects
Vérifier votre base de données
Vous pouvez accéder à phpMyAdmin pour gérer visuellement votre base de données. Cliquez sur le bouton MySQL de votre tableau de bord pour ouvrir phpMyAdmin. Connectez-vous avec les mêmes identifiants affichés sur votre tableau de bord.
Depuis phpMyAdmin, vous pouvez :
- Voir toutes les tables créées par les migrations
- Parcourir et modifier les données directement
- Exécuter des requêtes SQL personnalisées
- Exporter/importer les données de la base
Flux de déploiement
Chaque fois que vous poussez du code vers Git, votre application est déployée automatiquement :
L'URL de votre application déployée suit ce format :
https://<your-subdomain>-<repo-name>.<session-domain>
Exemple : https://student01-module-a.demo.nstrim.app