( اللَّهُمَّ إِنِّي أَعُوذُ بِكَ مِنَ الْعَجْزِ وَالْكَسَلِ، وَالْجُبْنِ وَالْهَرَمِ والْبُخْلِ، وَأَعُوذُ بِكَ مِنْ عَذَابِ الْقَبْرِ، وَمِنْ فِتْنَةِ الْمَحْيَا َالْمَمَاتِ )

Laravel

o

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)

  • 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

 

  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.

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources : Packages Laravel populaires comme Spatie, Livewire, et plus encore. Commande rapide : composer require nom-du-package...

Packages e-Plus Utilisés dans Laravel 11

Voici une liste de packages utiles pour développer des applications avec Laravel 11. Ces packages ne figurent pas dans les réponses précédentes. 1. Laravel Excel Un package pour importer et exporter des fichiers Excel ou CSV dans votre application. Description :...

Packages e-Blog Utilisés dans Laravel 11

Voici une liste de packages utiles pour enrichir un blog avec Laravel 11. 1. Spatie Laravel Tags Un package pour ajouter facilement des tags aux articles de votre blog. Description : Permet de gérer des tags avec un modèle flexible et personnalisable. Installation :...

Packages e-commerce Utilisés dans Laravel 11

Liste des principaux packages e-commerce compatibles avec Laravel 11, accompagnés de résumés de leurs fonctionnalités et des liens utiles pour chaque package. 1. Bagisto Un package e-commerce complet et open-source basé sur Laravel et Vue.js. composer create-project...

Packages Utilisés dans Laravel 11

Voici une présentation résumée des principaux packages inclus dans Laravel 11, basée sur la documentation officielle de Laravel 11. 1. Breeze Un package minimaliste pour la mise en place rapide de l’authentification (login, inscription, mot de passe oublié, etc.) avec...

Bases : Construire un projet Laravel

La création d’un projet Laravel efficace nécessite une approche bien structurée pour organiser les données et gérer les fonctionnalités. Voici un guide détaillé pour réussir votre projet Laravel : 1. Modèles : Représentation des Données Les modèles définissent les...

Tuto : Laravel Ecommerce

Laravel 11 et Voyager forment un duo puissant pour développer rapidement des applications e-commerce robustes et personnalisables. Pourquoi : - Voyager ? Voyager offre une interface utilisateur intuitive pour : Créer des CRUD : Générez rapidement des interfaces pour...

Prod : Déployer Laravel sur un hébergement mutualisé

Déployer votre site Laravel sur un hébergement mutualisé n'est pas toujours bien documenté. De nombreux articles existants ne fonctionnent pas (croyez-moi, je les ai tous essayés). J'aurais aimé avoir un guide comme celui-ci à l'époque, donc j'ai décidé d'en écrire...

Bug : Images cassées – Chemin en erreur ?

Images cassées ? Il arrive parfois que des images soient cassées après avoir effectué des modifications sur le serveur Solutions : # Vérifier le chemin APP_URL: Tout d'abord, vérifiez le chemin APP_URL dans le fichier .env et assurez-vous qu'il est correct.  Le chemin...

QR : Utilistaion Laravel ?

Laravel est un framework flexible, mais comme tout outil, il est important de l'utiliser de manière judicieuse pour éviter les problèmes courants. Créer des applications Laravel robustes, performantes et maintenables Ne pas négliger les fondamentaux Comprendre MVC:...

Bases : Création des vues dans Laravel

Création des vues dans Laravel Blade Les fichiers Blade sont stockés dans le répertoire resources/views. Créer des sous-répertoires pour : layouts: Pour stocker vos fichiers de layout principaux. components: Pour stocker vos composants réutilisables. emails: Pour...

Bases : Nommage Spécifique des Tables dans Larave

Le nommage des tables dans Laravel suit des conventions spécifiques qui assurent la cohérence et la clarté des relations dans la base de données. Voici une explication complète avec des exemples et des détails sur les tables de pivot. 1. Conventions de Nommage des...

Bases : Les commandes Composer

Les commandes Composer Gestionnaire de dépendances pour PHP, essentiel à Laravel pour gérer les packages et bibliothèques dont une application a besoin. Il permet d'installer, de mettre à jour et de supprimer des packages de manière simple et efficace. Installation de...

Affichage : Statistiques sur un tableau de bord Laravel

Création d’un Tableau de Bord pour une Boutique E-commerce avec Laravel Voici une version améliorée et détaillée pour afficher des statistiques (nombre d'utilisateurs, liste des articles, liste des produits/livres) sur un tableau de bord Laravel. 1. Création du...

Bases : Architecture Laravel

Architecture de base nom_du_projet/ ├── app/ │ ├── Http/ │ │ ├── Controllers/ │ │ ├── Controller.php │ ├── Models/ │ │ ├── User.php │ ├── Providers/ │ │ ├── AppServiceProvider.php ├── bootstrap/ │ ├── app.php │ ├── providers.php │ ├── cache/ │ │ ├── packages.php │ │...

QR : Laravel est-il frontend ou backend ?

Laravel : Framework Backend ou Full-Stack ? Laravel est principalement un framework backend conçu pour gérer la logique serveur et l'interaction avec les bases de données. Cependant, il inclut des outils frontend qui en font une solution polyvalente pour créer des...

Bases : Installer PHP Composer – Guide

Composer est un outil indispensable pour tout développeur PHP. Il permet de gérer facilement les dépendances de vos projets en automatisant leur installation et mise à jour. 1. Qu’est-ce que Composer ? Composer est un gestionnaire de dépendances pour PHP, similaire à...

Bases : Laravel – Les commandes en terminal

Commandes Artisan Laravel Gestion du serveur et des clés Lancer le serveur de développement local : php artisan serve Permet de tester rapidement l’application sur un serveur local. Générer une nouvelle clé d'application : php artisan key:generate Cette commande met à...

Bases : Dépendances Laravel à Installer via Composer

Installation de l’Application Laravel   Créer une nouvelle application Laravel : composer create-project laravel/laravel boutiquedemo Gestion de l’Authentification   Fonctions d’authentification prêtes à l’emploi : composer require laravel/ui   php artisan...

QR : Qu’est-ce que Laravel ?

Laravel est un framework PHP open-source conçu pour faciliter et accélérer le développement d’applications web. Il est particulièrement populaire grâce à ses fonctionnalités intégrées et son approche élégante pour construire des applications robustes et maintenables....

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

  1. Créer un fichier
    .env.local

    (copier le fichier

    .env

    )

  2. 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

  1. Créer un dossier pour les vues dans
    resources/views

    :

    layouts

    ,

    pages

    , etc.

  2. Ajouter un fichier de base :
    base.blade.php

    dans

    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

  1. Créer un factory pour générer des données fictives :
php artisan make:factory PageFactory
  1. Créer un seeder pour insérer des données :
php artisan make:seeder PageSeeder
  1. 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 :

  1. Ajouter une route dans
    routes/api.php

    :

Route::get('/pages', [PageController::class, 'index']);
  1. 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

  1. Site officiel de Laravel : https://laravel.com
  2. Documentation officielle : https://laravel.com/docs
  3. Packagist : https://packagist.org
  4. Laracasts : https://laracasts.com
  5. GitHub Laravel : https://github.com/laravel/laravel
  6. Stack Overflow : https://stackoverflow.com/questions/tagged/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).