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 :

  1. 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.
  2. É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.
  3. Sécurité : Offre des protections contre les failles comme SQL Injection, XSS et CSRF.
  4. Flexibilité : Convient aussi bien aux petites applications qu’aux grandes plateformes.
  5. Écosystème modulaire : S’intègre facilement avec d’autres outils PHP comme Composer, et propose des extensions via des packages tiers.
  6. 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)

6. GitHub Laravel

7. Medium – Laravel Tutorials

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

11. FreeCodeCamp Laravel Playlist

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

  1. Laravel Forge : Outil de déploiement et de gestion de serveurs (forge.laravel.com).
  2. Laravel Nova : Interface d’administration personnalisable (nova.laravel.com).
  3. 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

  1. 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.
  2. Modèle : # php artisan make:model XxxxXxxx
  3. 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())
  4. 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
  1. Aimeos
    Une solution e-commerce robuste et évolutive, intégrée à Laravel, idéale pour les boutiques de toutes tailles.
  2. Bagisto
    Une plateforme e-commerce open-source basée sur Laravel, offrant une gestion complète des produits, commandes, et clients.
  3. LunarPHP
    Une solution e-commerce moderne et modulaire pour Laravel, dotée d’une architecture flexible et d’une API GraphQL.
  4. Vanilo
    Un package modulaire qui permet de construire des solutions e-commerce sur mesure en intégrant uniquement les modules nécessaires.
  5. Laravel Shopping Cart
    Un package simple et léger pour ajouter une fonctionnalité de panier d’achat à votre projet Laravel.
  6. Simple Commerce by Statamic
    Une solution minimaliste et extensible pour créer des fonctionnalités e-commerce dans un environnement Laravel.
  7. LaravelEcomm
    Un projet open-source basé sur Laravel 11, suivant une architecture modulaire, idéal pour démarrer rapidement une boutique en ligne.
  8. 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.
  9. 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.
  10. Paystack for Laravel
    Une intégration facile de la passerelle de paiement Paystack, adaptée aux projets e-commerce Laravel.
  11. Spatie Laravel Sitemap
    Génère automatiquement des sitemaps XML pour améliorer le référencement de votre blog.
  12. Laravel Jetstream
    Fournit des fonctionnalités avancées pour l’authentification, la gestion des utilisateurs, et les équipes.
  13. 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