0% ont trouvé ce document utile (0 vote)
4 vues53 pages

View Layout

Ce cours Laravel, dirigé par Abdoussalam TINE, enseigne aux étudiants le développement d'applications web modernes avec le framework PHP Laravel, en se concentrant sur l'architecture MVC. Les étudiants apprendront à gérer les routes, les contrôleurs, les vues, ainsi qu'à manipuler des bases de données et à développer des API REST. Le cours couvre également l'installation de Laravel, les outils nécessaires, et les bonnes pratiques de développement web.

Transféré par

ndeyeamyciss2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues53 pages

View Layout

Ce cours Laravel, dirigé par Abdoussalam TINE, enseigne aux étudiants le développement d'applications web modernes avec le framework PHP Laravel, en se concentrant sur l'architecture MVC. Les étudiants apprendront à gérer les routes, les contrôleurs, les vues, ainsi qu'à manipuler des bases de données et à développer des API REST. Le cours couvre également l'installation de Laravel, les outils nécessaires, et les bonnes pratiques de développement web.

Transféré par

ndeyeamyciss2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours Laravel

Formateur : Abdoussalam TINE


Développeur Informatique chargé des Applications & Données à CGF BOURSE

ISEP DD

Année : 2026

Cours Laravel
INTRODUCTION

Introduction — pourquoi ce cours ?

Ce cours introduit les étudiants au développement d’applications web modernes à l’aide du


framework PHP Laravel. Il permet d’acquérir les compétences nécessaires pour concevoir,
développer et déployer des applications web structurées, sécurisées et maintenables en
utilisant une architecture MVC.

À la fin de ce cours, l’étudiant sera capable de :

✓ Comprendre le fonctionnement du framework Laravel


✓ Concevoir une application web basée sur l’architecture MVC
✓ Gérer les routes, contrôleurs et vues (Blade)
✓ Manipuler les bases de données avec Eloquent ORM
✓ Créer et exécuter des migrations et seeders
✓ Développer des API REST simples
✓ Implémenter un système d’authentification
✓ Appliquer les bonnes pratiques de développement web

Cours Laravel
INTRODUCTION

langage compilé et un langage interprété

Un langage compilé est un langage dont le code est transformé entièrement en langage
machine avant d’être exécuté. Cette transformation est faite par un programme appelé
compilateur. Une fois compilé, le programme devient un fichier exécutable que
l’ordinateur peut lancer directement. Cela rend l’exécution plus rapide.

Exemples : C, C++, Go, Rust.

Un langage interprété, lui, est exécuté ligne par ligne par un programme appelé
interpréteur. Le code n’est pas transformé en un exécutable, il est simplement lu et
exécuté au fur et à mesure. Cela facilite le développement, mais l’exécution est souvent
moins rapide que celle d’un langage compilé.

Exemples : PHP, Python, JavaScript.

Cours Laravel
CONTEXTE

installation de Laravel

Laravel est un framework PHP moderne qui simplifie le développement d’applications


web grâce à une structure claire et des outils intégrés. Avant de commencer à
développer avec Laravel, il est essentiel de mettre en place un environnement de
travail adapté comprenant PHP, Composer, ainsi que les extensions nécessaires.

L’installation de Laravel peut se faire de deux manières principales : via Composer


(méthode recommandée) ou via le Laravel Installer. Elle nécessite également une
configuration correcte de PHP afin de garantir le bon fonctionnement des
dépendances et des fonctionnalités du framework, notamment la gestion des bases
de données et des extensions comme OpenSSL et Zip.

Cette étape d’installation constitue la base de tout projet Laravel et permet de


préparer un environnement stable pour le développement d’applications web
performantes et sécurisées.

Cours Laravel
CONTEXTE

Outils

PHP est le langage de programmation principal utilisé par Laravel.


C’est lui qui exécute le code côté serveur et permet de générer des pages web
dynamiques.

Dans Laravel, PHP sert à :


✓ traiter les requêtes utilisateur
✓ exécuter la logique métier (contrôleurs, services)
✓ communiquer avec la base de données
✓ générer les réponses (HTML, JSON, etc.)
NB : Sans PHP, Laravel ne peut pas fonctionner.
Site : [Link]
Téléchargement : [Link]
[Link] (Version 8.3.30 VS16 x64 Non Thread Safe)
Commande de verification :
➢ php --version
Cours Laravel
CONTEXTE

Outils

Composer est un gestionnaire de dépendances pour PHP.

Il permet de :
✓ installer Laravel et ses bibliothèques
✓ gérer automatiquement les packages nécessaires au projet
✓ maintenir les versions des dépendances
✓ charger automatiquement les classes PHP (autoload)

NB : En résumé, Composer est l’outil qui installe et organise tout l’écosystème


Laravel.

Site : [Link]
Téléchargement : [Link]
Commande de verification :
➢ composer –v ou composer --version
Cours Laravel
CONTEXTE

Outils

Laravel est un framework PHP open-source qui facilite le développement


d’applications web.
Il fournit une structure prête à l’emploi avec :
✓ un système de routage (gestion des URLs)
✓ des contrôleurs pour organiser le code
✓ un moteur de vues (Blade)
✓ un ORM (Eloquent) pour la base de données
✓ un système d’authentification intégré
NB : Laravel permet de développer plus vite, avec un code propre, sécurisé et
organisé.

Site Officiel de Laravel : [Link]


Installation Laravel : Installation | Laravel 13.x - The clean stack for Artisans and
agents (Version 13)
Commande de verification :
➢ Laravel --version
Cours Laravel
CONTEXTE

Extension PHP nécessaires

Ouvrez le fichier se trouvant dans C:\Program Files\php-8.3.30\[Link] puis d’activer


les extensions ci-dessous :

➢ extension_dir = "ext"
➢ extension=curl
➢ extension=mbstring
➢ extension=fileinfo
➢ extension=intl
➢ extension=openssl
➢ extension=zip
➢ extension=mysqli
➢ extension=pdo_mysql
➢ extension=pdo_sqlite
➢ extension=sqlite3

NB : Pour connaître le chemin du fichier [Link], tapez cette commande dans la


console
➢Coursphp --ini
Laravel
CONTEXTE

Commandes après installation

➢composer global require laravel/installer

➢laravel new example-app

➢cd daw (nom de votre application)

➢npm install --ignore-scripts && npm run build

➢php artisan migrate

➢composer run dev ou php artisan serve


Cours Laravel
CONTEXTE

Structure de l’application

Cours Laravel
MODULE A

HTTP, web & architecture MVC

Cours Laravel
MODULE A

HTTP et MVC : le vocabulaire commun

❑ Le web repose sur un échange simple : le client envoie une requête HTTP (méthode, URL,
en-têtes, parfois un corps), le serveur répond avec un code de statut et un contenu (HTML,
JSON, etc.).

Cours Laravel
MODULE A

HTTP et MVC : le vocabulaire commun

La méthode HTTP indique l’action que le client souhaite effectuer sur une
ressource identifiée par une URI. Elle permet au serveur de comprendre l’intention
exacte du client. Les principales méthodes utilisées dans les API sont :
GET : lire ou récupérer une ressource.
POST : créer ou envoyer des données au serveur.
PUT : remplacer entièrement une ressource.
PATCH : mettre à jour partiellement une ressource.
DELETE : supprimer une ressource.

En HTML classique, seuls GET et POST


existent nativement ; les API REST et
Laravel exposent tous les verbes sur
des routes dédiées.

Cours Laravel
MODULE A

HTTP et MVC : le vocabulaire commun

❑ Le patron MVC sépare les responsabilités :

✓ le modèle porte les données et les règles métier,

✓ la vue présente le résultat à l’utilisateur,

✓ le contrôleur orchestre la requête. Laravel ajoute routes, middleware, Eloquent et


Blade, mais la logique reste la même.

Imagine un restaurant :
❑ Controller = le serveur
Il prend la commande et apporte le plat.
❑ Model = le chef en cuisine
Il prépare les données (la nourriture).
❑ View = l’assiette
La présentation finale du plat.

Cours Laravel
MODULE A

Flux MVC dans Laravel (schéma texte)


Requête → réponse

Cours Laravel
MODULE B

Introduction Laravel & écosystème

Cours Laravel
MODULE B

Artisan
Artisan est l’interface en ligne de commande de Laravel.
C’est un outil puissant qui permet d’automatiser et
d’accélérer le développement.
En d’autres termes :
Artisan = le “couteau suisse” de Laravel en ligne de
commande.
Il permet de :
❑ créer des fichiers automatiquement (controllers,
models, migrations…)
❑ gérer la base de données
❑ lancer un serveur local
❑ exécuter des tâches planifiées
❑ vider le cache
❑ Etc…
Exemple :
php artisan serve
La commande pour voir la liste des commandes disponibles
php artisan list

Cours Laravel
MODULE B

Structure de Laravel
Il est important de d’abord analyser la structure des
dossiers pour savoir comment la hiérarchie fonctionne
(Laravel 13).

Le dossier app contient le dossier http


(Controllers), Models, Providers

Booststrap : Ce dossier contient les


fichiers qui permettent de démarrer
et initialiser Laravel

Config : Ce dossier contient les fichiers


de configuration (Base de données,
mail, cache etc…)

Cours Laravel
MODULE B

Structure de Laravel
Il est important de d’abord analyser la structure des
dossiers pour savoir comment la hiérarchie fonctionne
(Laravel 13).
Database : Gestion de la base de
données (migrations, seeders,
factories)
Public : Point d’entrée de l’application
accessible depuis le navigateur.
Resources : Fichiers frontend (Vues
Blade, CSS, JavaScript)

Route : Définition des routes (URL de


l’application)
Storage : Stockage interne (logs,
cache, fichiers uploadés
.env : Fichier de configuration de
l’environnement (DB, etc…)
Cours Laravel
MODULE C

Routing et Views

Cours Laravel
MODULE C

Des Routes aux Views : Premiers Pas avec Laravel

Laravel s’appuie sur les mêmes principes solides qui ont fait sa réputation :
un framework PHP moderne, lisible et hautement productif, reposant sur une
architecture MVC claire et structurée. Grâce à Artisan, sa ligne de commande
intégrée, le développement est accéléré et standardisé, tandis que le moteur
de templates Blade offre une manière élégante et efficace de gérer l’affichage.

Objectif de cette séance : apprendre à construire des pages web en définissant


des routes propres, et afficher des données dynamiques dans les vues à l’aide
de Blade.

Cours Laravel
MODULE C

Rappel MVC

❑Model : representation des donnees.


❑View : affichage HTML (Blade).
❑Controller : logique applicative.

Cours Laravel
MODULE C

Dossiers a connaitre

❑routes/[Link] : routes web.


❑resources/views : fichiers Blade.
❑app/Http/Controllers : controllers (plus tard).
❑public : point d’entré web.

Cours Laravel
MODULE C

Routing de base dans routes/[Link]

❑routes/[Link] : routes web.


❑resources/views : fichiers Blade.
❑app/Http/Controllers : controllers (plus tard).
❑public : point d’entré web.

Cours Laravel
MODULE C

Routing de base dans routes/[Link]

Exemple 1 : route minimale


use Illuminate\Support\Facades\Route;

Route::get('/', function () {
return 'Bienvenue Laravel 13';
});

Cours Laravel
MODULE C

Routing de base dans routes/[Link]

Exemple 2 : plusieurs verbes HTTP


Route::get('/courses', function () {
return 'Liste des cours';
});

Route::post('/courses', function () {
return 'Creation cours';
});

Route::put('/courses/{id}', function (string $id) {


return "Mise a jour cours $id";
});

Route::delete('/courses/{id}', function (string $id) {


return "Suppression cours $id";
});

Cours Laravel
MODULE C

Parametres de route

Parametre obligatoire
Route::get('/student/{id}', function (string $id) {
return "Etudiant $id";
});

Parametre optionnel
Route::get('/hello/{name?}', function (?string $name = 'John') {
return "Hello $name";
});

Cours Laravel
MODULE C

Parametres de route

Contraintes
Route::get('/student/{id}', function (string $id) {
return "ID: $id";
})->whereNumber('id');

Route::get('/group/{name}', function (string $name) {


return "Groupe: $name";
})->whereAlpha('name');

Cours Laravel
MODULE C

Routes nommees

Les routes nommees evitent de coder des URLs en dur.

Route::get('/dashboard', function () {
return 'Dashboard';
})->name('dashboard’);

Generer une URL :


$url = route('dashboard’);

Avec parametres :

Route::get('/students/{id}', function (string $id) {


return "Student $id";
})->name('[Link]’);

$url = route('[Link]', ['id' => 7]);

Cours Laravel
MODULE C

Introduction Views depuis les routes

Exemple 1 : route qui retourne une view avec données


Route::get('/welcome', function () {
return view('welcome', [
'title' => 'Bienvenue',
'teacher' => 'Prof Laravel',
]);
});
resources/views/[Link]
<h1>{{ $title }}</h1>
<p>Formateur: {{ $teacher }}</p>

Cours Laravel
MODULE C

Introduction Views depuis les routes

Exemple 2 : route avec parametre + affichage


Route::get('/students/{id}', function (string $id) {
return view('[Link]', [
'student' => [
'id' => $id,
'name' => 'Etudiant '.$id,
'email' => 'student'.$id.'@[Link]',
],
]);
})->name('[Link]’);

resources/views/students/[Link]
<h2>Fiche etudiant</h2>
<p>ID: {{ $student['id'] }}</p>
<p>Nom: {{ $student['name'] }}</p>
<p>Email: {{ $student['email'] }}</p>

Cours Laravel
MODULE C

Introduction Views depuis les routes

Exemple 3 : liste dans Blade avec @if … @endif


Route::get('/courses/list', function () {
return view('[Link]', [
'isWeekend' => true,
]);
});

resources/views/students/[Link]
@if ($isWeekend)
<p>Session weekend.</p>
@endif

Cours Laravel
MODULE C

Introduction Views depuis les routes

Exemple 4 : liste dans Blade avec @foreach … @endforeach


Route::get('/courses/list', function () {
return view('[Link]', [
'courses' => ['Laravel', 'PHP', 'SQL', 'JavaScript'],
]);
});
resources/views/courses/[Link]
<h2>Liste des cours</h2>
<ul>
@foreach ($courses as $course)
<li>{{ $course }}</li>
@endforeach
</ul>

Cours Laravel
MODULE C

Mini TP

❑ Creer la route /hello qui retourne un texte.


❑ Creer /student/{id} avec contrainte whereNumber.
❑ Creer une route nommée dashboard.
❑ Creer un groupe admin avec prefix + name.
❑ Creer une view students/[Link].
❑ Depuis la route /student/{id}, envoyer un tableau student
vers la view.
❑ Afficher une liste de modules avec @foreach.

Cours Laravel
MODULE D

Controllers

Cours Laravel
MODULE D

Controllers

Plan du cours
❑ Pourquoi utiliser des controllers
❑ Creer un controller avec Artisan
❑ Controller de base et liaison avec les routes
❑ Retourner une vue depuis un controller
❑ Controllers ressource (CRUD) : introduction

Cours Laravel
MODULE D

Introduction

Au début, on peut écrire toute la logique dans des closures dans


routes/[Link] :

Route::get('/hello', function () {
return 'Bonjour';
});

Quand l’application grossit, ce fichier devient difficile a lire.

Laravel propose les controllers : des classes PHP qui regroupent la


logique liée a un sujet (utilisateurs, articles, contact, etc.).
Par défaut, les controllers sont dans le dossier :
app/Http/Controllers
Un controller peut contenir plusieurs méthodes (fonctions) publiques.
Chaque méthode répond a une route (souvent une URL + une méthode
HTTP).

Cours Laravel
MODULE D

Creer un controller avec Artisan

Commande de base :

➢ php artisan make:controller NomDuController

Exemple pour un controller qui gère les utilisateurs :

➢ php artisan make:controller UserController

Cela crée le fichier app/Http/Controllers/[Link].

Cours Laravel
MODULE D

Exemple de controller simple

Voici un controller avec une méthode show qui affiche le profil d’un utilisateur. Pour
débuter sans base de données, on peut passer un tableau fictif.
<?php
namespace App\Http\Controllers;

class UserController extends Controller


{
public function show(string $id
{
return view('[Link]', [
'user' => [
'id' => $id,
'name' => 'Utilisateur '.$id,
'email' => 'user'.$id.'@[Link]',
],
]);
}
}

Cours Laravel
MODULE D

Affichage dans la view

Fichier vue resources/views/user/[Link] :

<h1>Profil</h1>
<p>Nom : {{ $user['name'] }}</p>
<p>Email : {{ $user['email'] }}</p>

Cours Laravel
MODULE D

Lier une route au controller

Dans routes/[Link] :
use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;

Route::get('/user/{id}', [UserController::class, 'show’]);

Quand une requête correspond a /user/5,


Laravel appelle UserController::show et passe la valeur du segment {id}
a la méthode show (ici string $id vaut "5").

Cours Laravel
MODULE D

Controllers ressource (CRUD en une ligne de routes)

Pour une ressource (ex. photos), Laravel peut generer un controller avec les methodes
index, create, store, show, edit, update, destroy.

php artisan make:controller PhotoController --resource


Enregistrement des routes :

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class);
Cela crée plusieurs routes nommées (ex. [Link], [Link], etc.).

Cours Laravel
MODULE D

Controllers ressource (CRUD)

Cela crée plusieurs routes nommées (ex. [Link], [Link], etc.).

Verbe HTTP URI Action Nom de route


GET /photos index [Link]
GET /photos/create create [Link]
POST /photos store [Link]
GET /photos/{photo} show [Link]
GET /photos/{photo}/edit edit [Link]
PUT/PATCH /photos/{photo} update [Link]
DELETE /photos/{photo} destroy [Link]

Routes supplémentaires : les déclarer avant Route::resource, sinon la route


photos/{photo} peut intercepter votre URL personnalisée.

Route::get('/photos/popular', [PhotoController::class, 'popular’]);


Route::resource('photos', PhotoController::class);

Cours Laravel
MODULE D

Mini TP

❑ Créer ContactController avec php artisan make:controller ContactController.


❑ Ajouter une méthode index qui retourne view('contact', ['title' => 'Contact']).
❑ Créer resources/views/[Link] avec {{ $title }}.
❑ Dans routes/[Link], lier GET /contact a [ContactController::class, 'index'] avec un
nom de route contact.
❑ Ajouter une méthode show(string $id) et la route GET /messages/{id}.

Cours Laravel
MODULE E

Views Blade + Assets

Cours Laravel
MODULE E

Views Blade + Assets

Plan du cours
❑ Comprendre le rôle des vues Blade

❑ Maitriser extends / section / yield / include

❑ Ajouter des assets dans le layout

❑ Eviter les erreurs fréquentes de structure

Cours Laravel
MODULE E

Views Blade + Assets

Cours Laravel
MODULE E

Vue

Une vue est un fichier qui mélange du PHP, du HTML et


la syntaxe Blade.

Blade ajoute des espaces réservés (variables, directives)


pour le contenu dynamique et sert à décrire la structure et
la mise en page de la page.

Lorsqu’un utilisateur accède à l’application, Laravel génère


la page à partir de la vue et envoie le HTML au navigateur.

Dans un projet Laravel, les vues se trouvent dans le


dossier resources/views.

Cours Laravel
MODULE E

Création d’une vue


Pour créer une vue dans Laravel, procédez comme suit :

1. Ouvrez le dossier resources/views de votre projet Laravel.

2. Créez un fichier avec l’extension .[Link]. Laravel utilise


alors le moteur de templates Blade pour traiter ce fichier.

3. Dans ce fichier, rédigez la structure de la page en HTML, et


ajoutez si besoin du PHP et de la syntaxe Blade pour la mise
en forme et la logique d’affichage.

4. Pour le contenu dynamique, utilisez des espaces


réservés Blade, par exemple {{ $variable }} ou des directives
comme @if, @foreach, etc.

5. Enregistrez le fichier.

Cours Laravel
MODULE E

Utiliser les layouts

Dans Laravel, une mise en page (layout) est un modèle de base qui
définit la structure générale d’une page web.

Elle comprend généralement les balises HTML <head> et <body>, et peut


inclure :
❑ des liens vers des fichiers CSS et JavaScript,
❑ des éléments communs tels que l’en-tête, le pied de page ou le
menu de navigation.

Le layout contient également des espaces réservés (placeholders)


destinés à recevoir du contenu dynamique, comme le titre de la page ou
le contenu principal.

Pour créer une mise en page, il suffit de créer un nouveau fichier de vue
dans le répertoire resources/views et d’y définir la structure HTML ainsi
que les zones réservées au contenu.

Cours Laravel
MODULE E

Utiliser les layouts


Voici un exemple de modèle de mise en page :
❑ [Link] = gabarit commun : ce
qui ne change pas (HTML de base,
menu, pied de page) est écrit une
seule fois.

❑ @yield('title', 'Mon site') =


emplacement du titre d’onglet valeur
par défaut : « Mon site ».

❑ <header> = bandeau du haut (liens


Accueil / Contact), pareil sur toutes les
pages qui utilisent ce layout.

❑ @yield('content') = zone variable :


chaque page y injecte son contenu
via @section('content’).

❑ <footer> = pied de page commun à


ces pages.

Cours Laravel
MODULE E

Utiliser les layouts


Pour utiliser cette mise en page dans une vue, la
mise en page peut être étendue et les sections
peuvent être définies comme suit :
❑ @extends('[Link]’) = Cette
page s’affiche dans le
layout layouts/[Link] (menu + pied de
page déjà définis là).

❑ @section('title', 'Profil’) = Remplit


le @yield('title') du layout : l’onglet du
navigateur affiche « Profil ».

❑ @section('content') … @endsection = Remplit


le @yield('content') du layout : c’est le corps de
la page (titre, ID, nom).

❑ {{ $user['id'] }} et {{ $user['name'] }} =
Affichent les données envoyées par le contrôleur

Cours Laravel
MODULE D

Mini TP

Route
Créer une route GET /a-propos (nom de route : about).
Contrôleur
Soit une méthode about() dans un contrôleur existant (ex. UserController ou
un PageController dédié), soit une closure dans [Link] si le cours l’autorise.
La réponse doit être return view('[Link]', [...]) avec au moins une variable : ['titre' => 'À
propos de nous'] (tu peux en ajouter d’autres).
Vue
Fichier : resources/views/pages/[Link].
Utiliser @extends('[Link]').
Remplir @section('title', ...) (ex. le même texte que titre ou un libellé fixe).
Dans @section('content') : un <h1> + un paragraphe qui affiche le texte passé par le
contrôleur ({{ $titre }} ou une autre variable).
@include
Créer un partial resources/views/partials/[Link] qui affiche une ligne du type : «
Dernière mise à jour : » + une date en dur ou une variable $annee passée depuis la vue about.
Dans [Link], inclure ce partial avec @include(...) et les bonnes données.
Navigation
Dans partials/[Link], ajouter un lien vers la page à propos en
utilisant route('about')
Cours Laravel

Vous aimerez peut-être aussi