LARAVEL
Laravel
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)
- URL : https://packagist.org/packages/laravel/laravel
- Description : Repertorie les packages Laravel que vous pouvez installer pour enrichir vos projets.
6. GitHub Laravel
- URL : https://github.com/laravel/laravel
- Description : Dépôt officiel du framework Laravel, où vous pouvez consulter le code source et contribuer.
7. Medium – Laravel Tutorials
- URL : https://medium.com/tag/laravel
- 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
- URL : https://devdojo.com/series/learn-laravel
- Description : Série de tutoriels interactifs pour apprendre Laravel pas à pas.
11. FreeCodeCamp Laravel Playlist
- URL : https://www.freecodecamp.org/news/tag/laravel/
- 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).
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)
- # composer require laravel/jetstream
- # php artisan jetstream:install livewire
- # npm install
- # npm run dev
-Spatie Laravel Permission (Gestion des rôles)
- # composer require spatie/laravel-permission
- # php artisan vendor:publish –provider= »SpatiePermissionPermissionServiceProvider »
- # 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.
Visualisation structure du projet
# // Installation sous mac
brew install tree
# // generation globale
tree -a > project_structure.txt
# // Pour limiter la profondeur expl:2
find . -maxdepth 2 > project_structure.txt