Step By Step
– Pour tester l’application :
- # Administrateur : admin – admin@admin.net – MDP : – admin123
- # Utilisateur 1 : user1 – userlaravel1@userlaravel.net – MDP : – userlaravel1
- # Utilisateur 2 : user2 – userlaravel2@userlaravel.net – MDP : – userlaravel2
– Visualisation structure du projet :
- # brew install tree // Installation sous mac
- # tree -a > project_structure.txt // generation globale
- # find . -maxdepth 2 > project_structure.txt // Pour limiter la profondeur
Commandes utilisées fréquement :
-Nettoyage du cache
- # php artisan route:clear
- # php artisan cache:clear
- # php artisan config:clear
-Génération du nouveau projet
- # composer -v // voir la version
- # php -v // voir la version
- # composer create-project laravel/laravel xxxxxx // Lancer un nouveau projet
- # cd xxxxx // Ouvrir le projet
- # npm install // Faire les course : – Installer toutes les bibliothèques et outils nécessaires au bon fonctionnement du projet. Ces dépendances sont listées dans package.json .
- # npm run dev // Allumer le four et commencer à cuisiner : – Lancement du serveur de développement + Compilation des fichiers + Actualisation aprés modification d’un fichier
- # php artisan serve Accédez l’application via http://127.0.0.1:8000 // Lancer le serveur
- @@ Configurer le fichier .env // Modification pour accées BdD
- # php artisan key:generate
- # php artisan migrate // Migration de la base de données :
- # composer require nesbot/carbon // ” Facutatif” Bibliothèque PHP conçue pour faciliter la manipulation des dates et des heures * Créer des instances de date et d’heure * Effectuer des calculs (ajouter des jours, des mois, etc.) * Comparer des dates
-Génération des fichiers projet
- Migration : # php artisan make:migration create_xxxx_xxx_table // Pour gérer l’évolution de la bdd (ajout, modification ou suppression de tables, colonnes, etc.) ->> contient deux méthodes : up() : appliquer les modifications . down() : annuler les modifications.
- Modèle : # php artisan make:model XxxxXxxx
- Contrôleur : # php artisan make:controller XxxxxXxxxxController –resource // Récupère tous les élements et renvoie la vue (index() creat() store() show() edit () update() destroy())
- Répertoire des vues : # mkdir -p resources/views/xxxxxxx
Annexes :
-Dépendances (gérées via Composer)
- Voir fichier :@@ composer.json et le répertoire @@ vendor
- Voir les dependances : # composer show
- Ajouter # composer require nom_du_package Supprimer # composer remove nom_du_package Mettre à jour # composer update
- Installer les dépendancesfrontend : # npm install # Ajouter # npm install nom_du_package Supprimer # npm uninstall nom_du_package Mettre à jour l # npm update
-Laravel Jetstream (Authentification avancée)
- Jetstream est un scaffolding d’authentification pour Laravel qui vous permet de démarrer rapidement vos projets en vous fournissant une base solide et personnalisable. Il simplifie la mise en place des fonctionnalités courantes d’authentification, telles que l’enregistrement, la connexion, la réinitialisation de mot de passe, et bien plus encore.
- Jetstream propose deux stacks principales pour répondre à différents besoins : – Livewire: Cette stack utilise Livewire pour créer des interfaces utilisateur réactives et dynamiques. C’est un excellent choix si vous souhaitez une expérience utilisateur moderne et interactive. – Inertia: Cette stack utilise Inertia.js pour rendre le rendu côté serveur plus simple. C’est un bon choix si vous souhaitez une application à page unique (SPA) sans avoir à écrire beaucoup de JavaScript.
- # composer require laravel/jetstream
- # php artisan jetstream:install livewire
- # npm install
- # npm run dev
- # php artisan migrate
-
Jetstream gère l’inscription, la connexion et la réinitialisation du mot de passe. Pour personnaliser les vues dans resources/views/auth.
-Livewire
- Livewire est déjà installé via Jetstream. Assurez-vous qu’il est prêt à l’emploi :
- # composer require livewire/livewire
- # npm install –save @livewire/livewire
- # npm run dev
-Spatie Laravel Permission (Gestion des rôles)
- # composer require spatie/laravel-permission
- # php artisan vendor:publish –provider=”Spatie\Permission\PermissionServiceProvider”
- # php artisan migrate
- Configuration du modèle User pour utiliser le trait HasRoles « models/user.php »
- Ajouter @@ use SpatiePermissionTraitsHasRoles;
- Créer un fichier Seeder
- # php artisan make:seeder RoleSeeder
- # php artisan db:seed Ou php artisan db:seed –class=RoleSeeder
- # php artisan make:seeder UserSeeder
- # php artisan make:controller UserController
- # php artisan make:command AssignRole
Je trouve pas une commande ?
- # php artisan list
- # php artisan help <commande> //informations d’une commande spécifique
–Migrations
- Créer une migration :
- # php artisan make:migration create_table_name_table
- Exécuter les migrations :
- # php artisan migrate
- Vérifier le statut des migrations :
- # php artisan migrate:status
- Annuler la dernière migration :
- # php artisan migrate:rollback
- Réinitialiser toutes les migrations :
- # php artisan migrate:reset
- Supprimer et recréer la base de données :
- # php artisan migrate:refresh
–Modèles
- Créer un modèle :
- # php artisan make:model NomDuModele
- Créer un modèle avec une migration :
- #php artisan make:model NomDuModele -m
- Créer un modèle avec une migration, un factory et un seeder :
- #php artisan make:model NomDuModele -mfsc
–Contrôleurs
- Créer un contrôleur :
- #php artisan make:controller NomDuControleur
- Créer un contrôleur avec des actions de ressource :
- #php artisan make:controller NomDuControleur –resource
- Créer un contrôleur lié à un modèle :
- #php artisan make:controller NomDuControleur –model=NomDuModele
–Routes
- Afficher toutes les routes :
- php artisan route:list
–Vues
- à la main xxxx.blade.php dans le répertoire resources/views.
–Seeder
- #php artisan make:seeder NomDuSeeder
- Exécuter un seeder :
- #php artisan db:seed –class=NomDuSeeder
–Factory
- #php artisan make:factory NomDeLaFactory
–Cache
- Vider le cache :
- #php artisan cache:clear
- Vider le cache de configuration :
- #php artisan config:clear
- Vider le cache des routes :
- #php artisan route:clear
- Vider le cache des vues compilées :
- #php artisan view:clear
–Console
- Créer une commande Artisan personnalisée :
- #php artisan make:command NomDeLaCommande
–Développement
- Lancer le serveur de développement :
- #php artisan serve
- Créer des fichiers de test :
- #php artisan make:test NomDuTest
- Exécuter les tests :
- #php artisan test
- Ouvrir Tinker pour tester des commandes PHP :
- #php artisan tinker
–Notification :
- #php artisan make:notification NomDeLaNotification
–Job :
- #php artisan make:job NomDuJob
–Utilisateurs
- Créer un middleware :
- #php artisan make:middleware NomDuMiddleware
–Politique (Policy) :
- #php artisan make:policy NomDeLaPolicy
–
Exemple de Packages avec Laravel
- Aimeos
Une solution e-commerce robuste et évolutive, intégrée à Laravel, idéale pour les boutiques de toutes tailles. - Bagisto
Une plateforme e-commerce open-source basée sur Laravel, offrant une gestion complète des produits, commandes, et clients. - LunarPHP
Une solution e-commerce moderne et modulaire pour Laravel, dotée d’une architecture flexible et d’une API GraphQL. - Vanilo
Un package modulaire qui permet de construire des solutions e-commerce sur mesure en intégrant uniquement les modules nécessaires. - Laravel Shopping Cart
Un package simple et léger pour ajouter une fonctionnalité de panier d’achat à votre projet Laravel. - Simple Commerce by Statamic
Une solution minimaliste et extensible pour créer des fonctionnalités e-commerce dans un environnement Laravel. - LaravelEcomm
Un projet open-source basé sur Laravel 11, suivant une architecture modulaire, idéal pour démarrer rapidement une boutique en ligne. - GetCandy (maintenant intégré à LunarPHP)
Anciennement GetCandy, cette solution est désormais intégrée à LunarPHP, offrant des fonctionnalités modernes pour les applications e-commerce. - Sylius (intégré avec Laravel via API)
Bien que Sylius soit principalement une plateforme Symfony, il peut être utilisé avec Laravel via une intégration API pour une solution e-commerce avancée. - Paystack for Laravel
Une intégration facile de la passerelle de paiement Paystack, adaptée aux projets e-commerce Laravel. - Spatie Laravel Sitemap
Génère automatiquement des sitemaps XML pour améliorer le référencement de votre blog. - Laravel Jetstream
Fournit des fonctionnalités avancées pour l’authentification, la gestion des utilisateurs, et les équipes. - Spatie Laravel Permissions
Permet de gérer les rôles et permissions dans votre application Laravel.
Contrôleurs CRUD Routes Modéles
Les contrôleurs sont utilisés pour gérer la logique métier et interagir avec les modèles et les vues.
Un CRUD (Create, Read, Update, Delete) représente les opérations de base d’un contrôleur.
Poure générer un Controller avec CRUD
- php artisan make:controller NomController –resource
Cela génère un contrôleur dans `app/Http/Controllers/NomController.php
Liste des méthodes CRUD dans un contrôleur Laravel :
Voici les méthodes générées dans un Controller :
php
namespace App\Http\Controllers;
use App\Models\NomModel;
use Illuminate\Http\Request;
class NomController extends Controller
{
// Afficher la liste des ressources (READ)
public function index()
{
$items = NomModel::all();
return response()->json($items);
}
// Afficher le formulaire de création (non nécessaire pour API)
public function create()
{
//
}
// Enregistrer une nouvelle ressource (CREATE)
public function store(Request $request)
{
$request->validate([
‘nom’ => ‘required|string|max:255’,
]);
$item = NomModel::create($request->all());
return response()->json($item, 201);
}
// Afficher une ressource spécifique (READ)
public function show($id)
{
$item = NomModel::findOrFail($id);
return response()->json($item);
}
// Afficher le formulaire d’édition (non nécessaire pour API)
public function edit($id)
{
//
}
// Mettre à jour une ressource (UPDATE)
public function update(Request $request, $id)
{
$request->validate([
‘nom’ => ‘required|string|max:255’,
]);
$item = NomModel::findOrFail($id);
$item->update($request->all());
return response()->json($item);
}
// Supprimer une ressource (DELETE)
public function destroy($id)
{
$item = NomModel::findOrFail($id);
$item->delete();
return response()->json([‘message’ => ‘Supprimé avec succès’]);
}
}
Déclaration des Routes pour le CRUD
On définit les routes associées dans le fichier routes/api.php (pour une API) ou routes/web.php (pour une application web).
Méthode 1 : Déclaration Automatique
Laravel permet de déclarer directement un Resource Controller en une ligne :
php
use App\Http\Controllers\NomController;
Route::resource(‘noms’, NomController::class);
Cela génère automatiquement les routes suivantes :
| Méthode HTTP | URI | Action | Fonction du CRUD |
|————-|—–|——–|—————–|
| **GET** | `/noms` | `index` | Lire tous les enregistrements |
| **POST** | `/noms` | `store` | Créer un enregistrement |
| **GET** | `/noms/{id}` | `show` | Lire un enregistrement spécifique |
| **PUT/PATCH** | `/noms/{id}` | `update` | Mettre à jour un enregistrement |
| **DELETE** | `/noms/{id}` | `destroy` | Supprimer un enregistrement |
Méthode 2 : Déclaration Manuelle
Pour déclarer manuellement les routes :
php
Route::get(‘/noms’, [NomController::class, ‘index’]);
Route::post(‘/noms’, [NomController::class, ‘store’]);
Route::get(‘/noms/{id}’, [NomController::class, ‘show’]);
Route::put(‘/noms/{id}’, [NomController::class, ‘update’]);
Route::delete(‘/noms/{id}’, [NomController::class, ‘destroy’]);
Génération du Modèle et Migration— php artisan make:model NomModel -m
Cela crée :
– Un modèle `app/Models/NomModel.php`
– Une migration dans `database/migrations/xxxx_xx_xx_xxxxxx_create_nom_models_table.php`
Mettre à jour la migration :
php
public function up()
{
Schema::create(‘nom_models’, function (Blueprint $table) {
$table->id();
$table->string(‘nom’);
$table->timestamps();
});
}
Appliquez la migration : — php artisan migrate
Développement
Liste ordonnée des types de fichiers à générer
- Routes
- Contrôleurs
- Modèles
- Vues (Blade Templates)
- Migrations
- Seeders et Factories (pour les données de test)
- Middleware
Progressivement
Environnement de développement
# Installer Composer si ce n’est pas déjà fait
composer -v
php -v
# Créer un projet Laravel
composer create-project laravel/laravel laravelmomoperf
cd laravelmomoperf
# Démarrer le serveur local
php artisan serve
Mise en route serveur local
- Par défaut, Laravel utilise le port
127.0.0.1:8000.
Configuration de l’environnement
- Créer un fichier
.env.local(copier le fichier
.env)
- Modifier la connexion à la base de données :
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravelmomoperf
DB_USERNAME=root
DB_PASSWORD=root
Création de la base de données
php artisan migrate
Création des éléments principaux
Création d’un contrôleur
php artisan make:controller IndexController
Modifiez la route pour la page d’accueil dans
routes/web.php
:
use App\Http\Controllers\IndexController;
Route::get('/', [IndexController::class, 'index'])->name('index');
Ajout de vues et styles
- Créer un dossier pour les vues dans
resources/views:
layouts,
pages, etc.
- Ajouter un fichier de base :
base.blade.phpdans
layouts:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield('title')</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
@include('partials.header')
<div class="container">
@yield('content')
</div>
@include('partials.footer')
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Entités et base de données
Création des modèles et migrations
php artisan make:model Page -m
Cela génère un modèle (
app/Models/Page.php
) et une migration correspondante dans
database/migrations
.
Exécution des migrations
php artisan migrate
Création de CRUD
Générez les fichiers nécessaires avec :
php artisan make:controller PageController --resource
Ajoutez les routes pour le CRUD dans
routes/web.php
:
use App\Http\Controllers\PageController;
Route::resource('pages', PageController::class);
Seeders et Factories
- Créer un factory pour générer des données fictives :
php artisan make:factory PageFactory
- Créer un seeder pour insérer des données :
php artisan make:seeder PageSeeder
- Exécuter les seeders :
php artisan db:seed --class=PageSeeder
Sécurité et authentification
Laravel propose une solution simple avec Laravel Breeze ou Laravel Jetstream pour l’authentification :
composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run dev
php artisan migrate
API
Pour créer une API :
- Ajouter une route dans
routes/api.php:
Route::get('/pages', [PageController::class, 'index']);
- Utiliser Laravel Sanctum pour l’authentification API :
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Laravel en bref
Laravel est un framework PHP open-source puissant et élégant conçu pour simplifier le développement web. Il est reconnu pour :
- Simplicité : Une syntaxe claire et intuitive.
- MVC : Adopte le modèle MVC pour séparer la logique.
- Outils inclus : Artisan CLI, Eloquent ORM, Blade Templates.
- Communauté : Une large communauté et des extensions disponibles sur Packagist.
Ressources utiles
- Site officiel de Laravel : https://laravel.com
- Documentation officielle : https://laravel.com/docs
- Packagist : https://packagist.org
- Laracasts : https://laracasts.com
- GitHub Laravel : https://github.com/laravel/laravel
- Stack Overflow : https://stackoverflow.com/questions/tagged/laravel
Installation Laravel pour les nuls – Etape 2
Configuration MySQL pour MAMP 1. Modification du fichier .env Remplacez la section base de données...
Installation Laravel pour les nuls – Etape 1
Prérequis et environnement Étape 1: Vérifier l'environnement de base == Vérifier si PHP est...
VPS Docker – MySQL Base de Données en Production
« Avec Docker, la gestion de MySQL en production sur un VPS devient plus flexible et sécurisée. »...
VPS Docker -Déploiement sur Ubuntu
Ce guide exhaustif vous accompagne dans la gestion complète de votre application monapplication...
Laravel : – Images ne se chargent après nettoyage du VPS
Le problème : - Après un nettoyage du VPS, les images ne se chargent plus car les fichiers...
VPS – Problème, Diagnostic, Nettoyage et Vérification -Scripts-
Nettoyage et Vérification d’un VPS : L’Exemple Docker Optimisez la performance et la stabilité de votre Serveur Privé Virtuel (VPS) ! Ce guide pratique vous montrera comment effectuer un nettoyage en profondeur et une vérification complète de votre système, en mettant l’accent sur les bonnes pratiques avec Docke
Générer la liste des routes à importer dans postman
🌱 Définir et identifier les Routes Dans routes/api.php ==>> Expl use...
Authentification REST API avec Laravel et Sanctum
Configurer une REST API avec Laravel 11 en utilisant l'authentification Sanctum. Nous...
Validation de formulaire Ajax dans Laravel
Comment ajouter une validation de formulaire jQuery Ajax dans une application Laravel. Les...
Créer, exécuter et annuler une migration dans Laravel
Comment créer, exécuter et annuler une migration dans Laravel? Dans cet exemple, nous créerons...
Téléchargement d’image avec Ajax dans Laravel
Comment télécharger une image en utilisant Ajax dans une application Laravel. Dans cet exemple,...
Authentification dans Laravel avec Jetstream
Configurer l'authentification avec Jetstream dans une application Laravel. Laravel 11 Jetstream...
Laravel
Laravel est un framework PHP open-source conçu pour simplifier le développement d’applications web robustes, élégantes et performantes. Créé par Taylor Otwell en 2011, Laravel s’appuie sur l’architecture MVC (Model-View-Controller), ce qui permet de séparer la logique métier, la gestion des données et l’interface utilisateur.
Les avantages de Laravel :
-
Syntaxe élégante et lisible : Conçu pour simplifier les tâches courantes comme l’authentification, la gestion des sessions ou la validation des données.
-
Écosystème riche : Fournit des outils intégrés comme Eloquent ORM, Blade (moteur de templates), et des jobs pour gérer les files d’attente.
-
Sécurité : Offre des protections contre les failles comme SQL Injection, XSS et CSRF.
-
Flexibilité : Convient aussi bien aux petites applications qu’aux grandes plateformes.
-
Écosystème modulaire : S’intègre facilement avec d’autres outils PHP comme Composer, et propose des extensions via des packages tiers.
-
Support API : Laravel fournit des outils pour construire des API RESTful robustes et rapides.
1. Site officiel de Laravel
-
URL : https://laravel.com
-
Description : Le site officiel contient des ressources essentielles, y compris la documentation, des tutoriels de démarrage et des informations sur les outils comme Laravel Forge et Envoyer.
2. Documentation Laravel
-
URL : https://laravel.com/docs
-
Description : La documentation officielle de Laravel est la meilleure source pour comprendre les fonctionnalités de base et avancées du framework.
3. Laravel News
-
URL : https://laravel-news.com
-
Description : Un site dédié aux nouveautés, tutoriels, astuces, et packages populaires autour de Laravel.
4. Laracasts
-
URL : https://laracasts.com
-
Description : Plateforme de formation contenant des tutoriels vidéo de qualité, souvent appelée « Netflix pour les développeurs Laravel ».
5. Packagist (Laravel Packages)
-
Description : Repertorie les packages Laravel que vous pouvez installer pour enrichir vos projets.
6. GitHub Laravel
-
Description : Dépôt officiel du framework Laravel, où vous pouvez consulter le code source et contribuer.
7. Medium – Laravel Tutorials
-
Description : Articles et tutoriels sur Laravel écrits par des développeurs expérimentés.
8. Codecourse
-
URL : https://codecourse.com
-
Description : Propose des tutoriels vidéo de développement PHP et Laravel, souvent orientés vers des cas pratiques.
9. Tinkerwell
-
URL : https://tinkerwell.app
-
Description : Un outil compagnon pour exécuter du code Laravel directement sans ouvrir le navigateur.
10. DevDojo
-
Description : Série de tutoriels interactifs pour apprendre Laravel pas à pas.
11. FreeCodeCamp Laravel Playlist
-
Description : Articles et vidéos pédagogiques pour apprendre Laravel gratuitement.
12. PHP Laravel France (Communauté francophone)
-
URL : https://laravel.fr/
-
Description : Une communauté francophone dédiée aux développeurs Laravel.
Quelques outils complémentaires dans l’écosystème Laravel
-
Laravel Forge : Outil de déploiement et de gestion de serveurs (forge.laravel.com).
-
Laravel Nova : Interface d’administration personnalisable (nova.laravel.com).
-
Envoyer : Gestionnaire de déploiement continu (envoyer.io).



