Vous êtes sur la page 1sur 28

FRAMEWORKLARAVEL

Enseignant : Hachicha hassan


PARTIE1
Introduction à l’architecture de Laravel

1. Introduction

2. Présentation & installation

3. Architecture MVC

4. Routing

5. Controllers
Introduction
Présentation

-Laravel est un framework PHP qui propose


des outils pour construire des applications et
des sites web.

- Il regroupe les meilleures librairies pour chaque


fonctionnalité nécessaire à la création d’un site
web.

- Il a été construit en se basant sur Symfony.

- En juin 2011, Laravel a publié sa première version


Laravel 1.
Pourquoi Laravel ?
Voici pourquoi Laravel est si populaire pour les développeurs et les entreprises :
Artisan : e s t une CLI (Command Line Interface) qui aide les développeurs à construire
leurs applications web rapidement. Elle est utile pour générer les bases de données et créer les
fichiers MVC de base.
ORM Eloquent : Assure l’intéraction avec la base de données SQL.
Architecture MVC: Laravel est basé sur l’architecture MVCqui améliore lesperformances
des applications web.

Sécurité: Laravel aide à protéger le code d’une application contre divers types d’attaques
telles que les injections SQL, les vulnérabilités XSS, la falsification de requêtes intersites
(CSRF), etc.
Moteur de template : Laravel fournit aux développeurs Web un moteur de template
« BLADE » qui est léger et facile à utiliser.

Laravel et Vue.JS utilisés ensemble pour augmenter l'efficacité de l’application Web du processus
de développement jusqu'aux vitesses de chargement des pages.
Installation

Avant de commencer l’installation, vérifiez que le composer est bien installé :


Ouvrez votre terminal et tapez la commande :
composer –version
Commençons par créer un nouveau projet Laravel. Tout en restant sur
votre terminal dirigez-vous vers votre dossier à la racine de votre site
Et tapez :

composer c r e a t e - p r o j e c t l a r a v e l / l a r a v e l a t e l i e r 1
Cette commande vous installera automatiquement la dernière version stable de
Laravel
Organisation des fichiers

Après avoir tout installé nous pouvons voir que le dossier


« atelier1 » a bien été créé et voici ce que l’on y trouve à
l’intérieur :
/app : est le dossier où se trouve le cœur de votre application web
(controllers, middlewares, facades, providers,helpers etc…)

/config : vos fichiers de configurations d’application,authentification,


namespace, mails, base de donnéesetc.

/database : Vous y trouverez notamment vos migrations (qui


permettent de gérer votre base de données avec un système de
versioning) ainsi que les seeds et factories (pour tester votre base de
données avec des fake data).
Organisation des fichiers

/public : par convention comme pour la majorité des


frameworks il s’agit du seul dossier accessible depuis le serveur où
les fichiers sont accessibles depuis votre site (images, feuilles
de style et scripts principalement).

/resources : vos assets de feuilles de style (en sass) et


fichiers JS, les fichiers de langues si vous désirez un site
multi-langual et l’ensemble de vos vues.

/routes : vous trouverez notamment le fichier web.php qui


vous permettra de définir l’ensemble des routes de votre
application.
Organisation des fichiers

/.env = étroitement lié au fichier /config/app.php , il définit


l’environnement de l’application (base de données utilisées, nom de
l’application etc…)

composer.json : il s’agit du fichier permettant à Composer de


gérer les dépendances de l’application.
Organisation des fichiers

/bootstrap : demarrage de l’app.


/storage : dossier de stockage.
/tests : tests unitaires (pour éviter de tester manuellement
l’application à chaque fois).
/vendor : Ensemble des dépendances externes.
Comment je teste l’accès à mon projet ?

Utilisez la commande suivante :


cd atelier1
php a r t i s a n serve
copier/coller le lien, que la console vous renvoie, dans votre
navigateur ( h t t p : / / 1 2 7 . 0 . 0 . 1 : 8 0 0 0 )
Vous devez voir cette page =>
Cela indique que votre projet
Laravel est bien installé!
Quels sont les fichiers à l’origine de cette page ?

Pour cela dirigeons nous vers le fichier web.php situé dans le dossier «
routes ».
R o u t e : : g e t ( ' / ' , f u n c t i o n ( ) { r e t u r n view('welcome' ); } ) ;
Nous pouvons voir que la route ‘/’ retourne une method view() avec comme
paramètre 'welcome’.
Qu’est-ce-que tout cela veut dire ?
Cela veut dire que pour la route ‘/’ on retourne une vue appelé welcome.
Qui se trouve plus précisément dans resources/views/welcome.blade.php
(Blade étant le moteur de template utilisé par Laravel).
Architecture MVC

Laravel utilise une architecture dite MVC (Model – View – Controller)


Architecture MVC

• Le model représente les données et leur logique.

• Le view contient la présentation graphique à renvoyer àl’utilisateur.

• Le controller traite les actions utilisateur (via des requêtes), demande au


modèle d’effectuer les changements, puis passe les données à la vue.
Routing
• Laravel fournit un système de routes simple.
• Déclarer une route permet de lier une URI à un code à exécuter.

• Le routage est un moyen de créer une URL de requête pour votre


application.

• La meilleure chose à propos du routage Laravel est que vous êtes libre
de définir vos routes comme vous le souhaitez.
• Le routage est l’un des composants clés du framework Laravel, c’est
simplement un mécanisme qui effectue le mappage de vos requêtes vers
une action de contrôleur spécifique.
• Les routes Laravel sont définies dans le fichier /routes/web.php , qui est
automatiquement chargé par le framework.
Routing

Pour créer une route, il faut ainsi appeler la classe Route avec la
méthode HTTP souhaitée (get par exemple).

Indiquez à cette méthode l’URI concernée et le retour à afficher pour le


visiteur comme dans l’exemple ci-dessous :

Route::get('accueil', function () {

return ‘Bienvenue sur le site!’;

});

Copier ce code source dans le fichier routes/web.php

Tester votre route dans le navigateur : http://127.0.0.1:8000/accueil


Routing

Route qui affiche un texte :


Route::get('page1', function() { return 'Je suis la page 1 !'; });

Route::get('page2', function() { return 'Je suis la page 2 !'; });

Route::get('page3', function() { return 'Je suis la page 3 !'; });

Copier ce code source dans le fichier routes/web.php

Tester votre route dans le navigateur : http://127.0.0.1:8000/page1

=>Vous remarquez que le rendu est du texte!


Routing

Route qui rend une vue :


Route::get('/home', function (){
return view('welcome');
});
Copier ce code source dans le fichier routes/web.php
Tester votre route dans le navigateur : http://127.0.0.1:8000/home
=>Vous remarquez que le rendu est une vue!
Cette vue est cituée dans le dossier :
resource/views/welcome.blade.php
Routing

Le passage des paramètres dans les routes :

On peut utiliser un paramètre pour une route qui accepte des éléments
variables en utilisant des accolades. Exemple :

Route::get(‘page/{n}', function($n) {

return 'Je suis la page ' . $n . ' !';

});

Il existe deux type de parametres qu’on peut passer dans la route :

Paramètres obligatoires et paramètres facultatifs


Routing

Le passage de paramètre obligatoire :


Par exemple, si vous souhaitez capturer l’ID utilisateur dans l’URL lorsque vous souhaitez obtenir
les détails de l’utilisateur, vous pouvez vous référer aux pratiques suivantes :
Route::get('user/{id}', function($id)

{ return 'User '.$id;

});
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {

//traitement
});
Routing

Le passage de paramètre facultatif :


Parfois, vous devez spécifier des paramètres de routage, mais les
paramètres ne sont pas obligatoires, ? peut être utilisé à ce moment.
Route::get('user/{name?}', function ($name =
null) { return $name;
});
Route::get('user/{name?}', function ($name = ‘Mohamed'){
return $name;
});
Routing

Routage avec des méthodes de contrôleur :


Vous pouvez créer une route avec une méthode de contrôleur d’appel, vous pouvez
donc simplement créer une méthode de contrôleur et appeler cette méthode
avec votre route comme ci-dessous :
Route::get('/home', 'HomeController@home’);

Ou
Route::get('/home', [HomeController::class, 'home']);

Pour lister les routes de votre application exécuter dans la console :

php artisan route:list


Routing

Route nommée :

Laravel fournit un moyen simple de nommage de vos routes par lequel nous n’avons
pas à coder en dur l’URI dans nos vuesBlade.

Route::get('/home', 'HomeController@index')->name('home’);

Générer une URLà l’aide d’une route nommée

Lien : <a h r e f = " { { r out e( 'home') } } " >

Redirection dans un contrôleur : R e d i r e c t : : r o u t e ( ' h o m e ' ) ;


Routing

Différentes méthodes HTTP utilisées avec Route :

GET : c’est la plus courante, on demande une ressource qui ne change jamais, on peut
mémoriser la requête, on est sûr d’obtenir toujours la même ressource,
POST : elle est aussi très courante, là la requête modifie ou ajoute une ressource, le cas le
plus classique est la soumission d’un formulaire (souvent utilisé à tort à la place de PUT),
PUT : on ajoute ou remplace complètement une ressource,
PATCH : on modifie partiellement une ressource (donc à ne pas confondre avec PUT),
DELETE : on supprime une ressource.
Controllers

• La tâche d’un contrôleur est de réceptionner une requête (qui a déjà été
sélectionnée par une route) et de définir la réponse appropriée.
Controllers

• Nous allons voir comment relier une route à un Controller plutôt que d'utiliser
une fonction anonyme en deuxième paramètre de nos méthodes de routing.
• Pour commencer créons un nouveau controller

php artisan make:controller HomeController

• vos controllers se situent dans le dossier app/Http/Controllers

Nous allons ensuite créer une nouvelle méthode à notre class


WelcomeController que l'on nommera index()

public function index() { return view('welcome'); }


Controllers

• Maintenant nous devons faire le lien entre notre fichier web.php et notre Controller.
• Pour commencer créons la route dans web.php
Route::get('/', 'HomeController@index')->name('home’);
Route::get('/', [HomeController::class, 'index']) ')->name('home’);
• Si vous retournez et que vous tapez dans votre terminal la commande :
php artisan route:list
La nouvelle route sera ajouté
Et on peut la tester : http://127.0.0.1:8000/
Nous rencontrons un problème : laravel ne trouve pas le controller!
Controllers

• Voici une visualisation de la liaison entre la route et le contrôleur. On voit


qu’au niveau de la route il suffit de désigner le contrôleur et la méthode
dans un tableau.

Vous aimerez peut-être aussi