Laravel est un Framework web open-source écrit en PHP respectant le principe modèle-vue-contrôleur et entièrement développé en programmation orientée objet. Laravel est distribué sous licence MIT, avec ses sources hébergées sur GitHub.  De plus, Laravel utilise la toute dernière version de PHP 5.3 et a fréquemment des patches de disponibles avec de nouveaux éléments et des mises à jour qui règlent les problèmes, ce qui prouve qu’il est en constante évolution et amélioration. En ce moment, il se base sur « Composer », le meilleur outil de dépendance qui gère des projets en PHP jusqu’à maintenant 

Laravel se base effectivement sur le patron de conception MVC, c’est-à-dire modèle vue-contrôleur. Le modèle interagit avec la base de données, les regroupe, traite et gère les données. La vue s’occupe principalement de faire afficher ce que le modèle renvoie. Ensuite, elle s’occupe de recevoir toute interaction de l’utilisateur (hover, clic de souris, entrée de texte, etc.). Ce sont ces actions-là que le contrôleur gère. Celui-ci prend en charge de synchroniser le modèle et la vue. Il capte toutes les activités de l’utilisateur et, en fonction de, il actionne les changements à effectuer sur le site. En séparant les composants d’un site internet en ces trois catégories, cela permet une clarté de l’architecture des dossiers et simplifie grandement la tâche aux développeurs.

  •  Composer
    La première étape serait d’installer le Composer dont laravel utilise. Cependant, qu’est ce qu’un composer? Et bien c’est assez simple, Composer trouve les fichiers PHP qu’on a besoin dans un projet. Il va les chercher et les installer à la bonne place, pour nous. Comme Laravel est un Framework PHP, il est très pratique de l’utiliser pour bien partir un projet.
  • Installation de Composer
    On peut le télécharger sur le site getcomposer.org ou directement sur le site de
    laravel.com. Ce Composer a une entente avec Laravel et va chercher tous les fichiers que Laravel utilise pour bien fonctionner. En installant le Composer, on pourra installer beaucoup plus facilement et rapidement le Framework Laravel, sans faire d’erreur. Une fois le fichier « Composer-Setup.exe » est installé dans l’ordinateur, on peut maintenant installer Laravel.
  • Installation de Laravel

    Installation avec Laravel Installer

    Une autre solution pour installer Laravel consiste à utiliser l’installeur. Il faut commencer par installer globalement l’installeur avec Composer 

  • composer global require "laravel/installer=~1.1"
  • Maintenant, il faut savoir où installer le projet. Je vous conseille de travailler en
    localhost, avant de travailler sur le serveur lui-même, pour simple efficacité. Ouvrez une fenêtre Windows de où vous voulez mettre le dossier de projet et faites click-droit, si vous avez bien installé le Composer, vous devriez voir dans la liste « use Composer here ». Vous le sélectionnez et une fenêtre de commande va apparaître. Vous devez inscrire la ligne de commande cidessous :

  • composer create-project laravel/laravel your-project-name –prefer-dist
  • Explication

Composer : signifie qu’on utiliser le Composer
create-project : signifie qu’on crée un projet laravel/laravel : va chercher les fichiers à installer pour le Framework Laravel
your-project-name : on met le nom qu’on veut donner à notre projet
–prefer-dist : il y a plusieurs sous branches de Laravel, et cette commande-là va chercher la version complète de Laravel.

Maintenant qu’on a un Laravel tout neuf et qui fonctionne voyons un peu ce qu’il contient.

Dossier app

Ce dossier contient les éléments essentiels de l’application :

 

Dossier App
  • Console/Commands : ici on mettra toutes les commandes en mode console, il y a au départ une commande Inspire qui sert d’exemple,

  • Jobs : ici on mettra les commandes concernant les tâches que doit effectuer l’application. C’est une nouveauté de la version 5 que je n’aborderai pas dans ce cours,

  • Events et Listeners : ici on va avoir les événements nécessaires pour l’application,

  • Http : ici on va trouver tout ce qui concerne la communication : contrôleurs, routes, middlewares (il y a 4 middlewares de base) et requêtes,

  • Providers : ici on va mettre tous les providers, il y en a déjà 4 au départ. Les providers servent à initialiser les composants.

  • Policies : une évolution récente qui permet de gérer facilement les droits d’accès.

On trouve également le fichier User.php qui est un modèle qui concerne les utilisateurs pour la base de données.

Évidemment tout cela doit vous paraître assez nébuleux pour le moment mais nous verrons en détail la plupart de ces sections au fil du cours.

Autres dossiers

Autres dossiers
Autres dossiers

Voici une description du contenu des autres dossiers :

  • bootstrap : scripts d’initialisation de Laravel pour le chargement automatique des classes, la fixation de l’environnement et des chemins, et pour le démarrage de l’application,

  • public : tout ce qui doit apparaître dans le dossier public du site : images, CSS, scripts…

  • vendor : tous les composants de Laravel et de ses dépendances,

  • config : toutes les configurations : application, authentification, cache, base de données, espaces de noms, emails, systèmes de fichier, session…

  • database : ici on aura les migrations et les populations,

  • resources : ici on aura les vues, les fichiers de langage et les assets (par exemple les fichiers LESS ou Sass),

  • storage : pour stocker les données temporaires de l’application : vues compilées, caches, clés de session…

  • tests : pour les fichiers de tests unitaires.

Fichiers de la racine

Il y a un certain nombre de fichiers dans la racine dont voici les principaux :

  • artisan : outil en ligne de Laravel pour des tâches de gestion,

  • composer.json : fichier de référence de Composer,

  • phpunit.xml : fichier de configuration de phpunit (pour les tests unitaires),

  • .env : fichier pour spécifier l’environnement d’exécution.

Dans ce chapitre nous allons nous intéresser au devenir d’une requête
HTTP qui arrive dans notre application Laravel. Nous allons voir l’intérêt
d’utiliser un fichier htaccess pour simplifier les urls. Nous verrons aussi le
système de routage pour trier les requêtes.
Les requêtes HTTP Le HTTP (Hypertext Transfer Protocol) est un protocole de communication entre un client et un serveur. Le client demande une page au serveur en
envoyant une requête et le serveur répond en envoyant une réponse, en
général une page HTML. La requête du client comporte un certain nombre d’informations mais
nous allons nous intéresser pour le moment seulement à deux d’entre
elles :
la méthode : get, post, put, delete…
l’url : c’est l’adresse de la page demandée sur le serveur
Notre application Laravel doit savoir interpréter ces informations et les
utiliser de façon pertinente pour renvoyer ce que demande le client. Nous
allons voir comment cela est réalisé.
 

Les fichier des routes
C’est avec ce fichier que la requête va être analysée et dirigée. Regardons
ce qu’on y trouve au départ :

<?php
   Route
::get('/', function () {
   return view('welcome'); 
});


Comme Laravel est explicite vous pouvez déjà deviner à quoi sert ce code :
Route : on utilise le routeur,
get : on regarde si la requête a la méthode “get”,
‘/’ : on regarde si l’url comporte uniquement le nom de domaine,
dans la fonction anonyme on retourne (return) une vue (view ) à partir
du fichier “welcome”.

Plusieurs routes et paramètre de route
A l’installation Laravel a une seule route qui correspond à l’url de base
composée uniquement du nom de domaine. Voyons maintenant
comment créer d’autres routes. Imaginons que nous avons 3 pages qui
doivent être affichées avec ces urls :
1. http://monsite.fr/1
2. http://monsite.fr/2
3. http://monsite.fr/3
J’ai fait apparaître en gras la partie spécifique de l’url pour chaque page. Il
est facile de réaliser cela avec ce code :

<?php
      get(
'1', function() { return 'Je suis la page 1 !'; });
     get(
'2', function() { return 'Je suis la page 2 !'; });
      get(
'3', function() { return 'Je suis la page 3 !'; });
?>

La classe Routepeut gérer tous les types de requêtes HTTP
•Route::get($uri, $callback) : gère les requêtes de type GET
•Route::post($uri, $callback) : gère les requêtes de type POST
•Route::put($uri, $callback) : gère les requêtes de type PUT
•Route::patch($uri, $callback): gère les requêtes de type PATCH
•Route::delete($uri, $callback): gère les requêtes de type DELETE
•Route::options($uri, $callback): gère les requêtes de type OPTIONS
Création d’une route paramétrée
Un paramètre optionnel peut être ajouté à une route
•Il peut arriver qu’on ait besoin de spécifier un paramètre dans une route, mais
que sa présence soit optionnel
•On peut satisfaire ce besoin en ajoutant un point d’interrogation après le nom
du paramètre
•Il faudra tout de même donner une valeur par défaut à la variable
correspondante dans la closure
Exemple: Afficher «Bonjour fatou» à l’utilisateur quand il accède à l’adresse
http://localhost/saluer/fatou. L’accès à http://localhost/salueraffichera «Bonjour
Inconnu»

Route::get('/saluer/{nom?}', function ($nom = 'Inconnu') {
$reponse= 'Bonjour ' . $nom ;

return $reponse;
});

Il est possible de rediriger l’utilisateur vers une autre page
•Exemple: Rediriger l’utilisateur vers http://localhost/accueil quand il essaye
d’accéder à http://localhost/home

Route::redirect('/home', '/accueil');

Il est possible de préciser le code d’état HTTP durant la redirection
•Par défaut, le code d’état vaut 302
•Pour changer cette valeur en 301 par exemple, il faut faire :

Route::redirect('/home', '/accueil', 301);

Il est possible de faire une redirection permanente en faisant :

Route::permanentRedirect('/home', '/accueil'); 

Il est possible de faire correspondre une URL à une vue
•Si la route a seulement besoin de retourner la vue sans effectuer un quelconque
traitement, on peut ne pas utiliser de closures
•Il suffit d’invoquer la méthode viewde la classe Route.
Exemple:Afficher la vue «welcome» à l’utilisateur quand il accède à l’adresse
http://localhost/

Route::view('/', 'welcome'); 

Il est possible de faire correspondre une URL à une méthode d’un contrôleur
•La notion de contrôleur sera abordée plus tard
•A ce niveau, notez juste la syntaxe permettant d’associer une URL à une action
particulière d’un contrôleur
Exemple:Demander à Laravel d’invoquer la méthode getListdu contrôleur
UserControllerquand l’utilisateur accède à l’adresse http://localhost/users

Route::get('/users', 'UserController@getList'); 

Rôle

La tâche d’un contrôleur est de réceptionner une requête (qui a déjà été triée par une route) et de définir la réponse appropriée, rien de moins et rien de plus. Voici une illustration du processus :

Traitement de la requête par un contrôleur
Traitement de la requête par un contrôleur

Voyons maintenant un exemple pratique de mise en œuvre d’un contrôleur. On va conserver notre exemple avec les articles mais maintenant traité avec un contrôleur. On conserve le même template et les mêmes vues

On va créer un contrôleur (entraînez-vous à utiliser Artisan) pour les articles :

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;class ArticleController extends
Controller
{
public function show($n){
return view('article')->with('numero', $n);
}
}

L’intergiciel peut être défini comme un intermédiaire ou une interface agissant en coordination entre une requête et une réponse. Comme mentionné dans le scénario de test ci-dessus, si l’utilisateur n’est pas authentifié, votre projet peut rediriger cet utilisateur de la page login.php vers la page index.php. Vous pouvez créer votre middleware en exécutant la syntaxe mentionnée ci-dessous:
Syntaxe:

php artisan make: middleware <middleware_name>

Ici, vous devez remplacer le <middleware_name> par votre middleware. Vous pouvez voir cet emplacement de chemin app / Http / Middleware le middleware que vous allez créer votre projet.

Exemple:
php artisan make: middleware CheckUser
juin 2026
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930 

Articles récents

Archives

Défilement vers le haut