Cours Laravel

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 67

LARAVEL 8.

Théau Debureau
Laravel: Introduction

-Notion de Framework
-Environnement de travail
-Architecture MVC
Laravel: Notion de Framework

-ensemble d’outils pour faciliter le développement

-gain de productivité, rapidité de développement une fois maitrisé

-base cohérente commune

-regroupe des fonctions de bases que l’on va retrouver sur la plupart des applications du genre

(ex: gestion de l’authentification, des erreurs, droits..)

-évite de développer des fonctions déjà créées par d’autres


Laravel: ses points forts

-bien documenté, grande communauté


-simple d’utilisation
-système d’envoi de mails
-routage performant
-moteur de templates efficace
-système d’authentification pour les inscriptions/connexions
-créateur de requêtes SQL et système de migration pour les bases de données
-système de cache, de sessions…
Laravel: Modèle MVC

-contrainte du modèle MVC (organisation de code imposée)

-avantages dans le développement ou la reprise de code d’autres développeurs

Modèle: va gérer tout ce qui est données

Vue: va gérer les rendus visuels

Controlleur: va gérer la logique et l’ensemble de l’application


Laravel: Modèle MVC
Laravel: outils de développement
Laravel: installation de composer

Gestionnaire de dépendances libres


Laravel: Au coeur du framework

-notre premier projet

-les dépendances de composer.lock

-la gestion manuelle des dépendances avec composer

-l’architecture du framework
Laravel: notre premier projet

-vérifier la version de composer avec un terminal:

composer -V

-se placer dans votre dossier php et lancer la commande suivante:

composer create-project --prefer-dist laravel/laravel myblog

-composer va ensuite installer les dépendances nécessaires à l’architecture Laravel


Laravel: composer.lock

Contient toutes les dépendances installées automatiquement par composer


Laravel: gestion des dépendances

-test d’installation de cocur slugify avec composer

composer require cocur/slugify

-suppression d’un package avec composer

composer remove cocur/slugify

-utilisation de composer install et composer update pour ajout de version manuellement


Laravel: l’architecture du framework

-”app” -> va contenir toute notre application (code php, classes, modèles, controlleurs..)

-”bootstrap” -> ne pas toucher, contient l’installation de booststrap et un système de cache associé

-”config” -> dossier qui va permettre la configuration du framework

-”database” -> gestion de la base de données (gestion de tables et des données de ces tables)

-”public” -> va contenir les fichiers accessibles par les visiteurs (photos, img, js, css..)

-”resources” -> va contenir entre autre les vues de l’application

-”routes” -> va contenir le routage de notre application (web.php)

-”storage” -> va contenir les fichiers générés par notre application

-”test” -> permet de gérer des tests automatisés pour vérifier si notre application fonctionne correctement

-”vendor” -> contient toutes les dépendances de PHP installées


Laravel: lancement du serveur

php artisan serve dans le terminal puis on va sur le localhost et on devrait avoir ceci
Laravel: extensions utiles
Laravel: création de la base de données
Laravel: configuration de la base de données
Laravel: configuration du .env
Laravel: vérification de la base utilisée
Laravel: le routing
Laravel: le routing dynamique
Laravel: le préfixage des routes
Laravel: les retours de routing

Il est possible au niveau des routes de renvoyer:

-des nombres

-des chaînes de caractères

-des tableaux

-des responses
Laravel: les responses
Laravel: les redirections en response
Laravel: les responses de type JSON
Laravel: views et sous dossiers
Laravel: passage de variables aux vues
Laravel: blade et les includes
Laravel: blade et les surcharges de yield
Laravel: les models
Laravel: les models

$fillable -> fait référence à un tableau associatif pour envoyer des données à la base

$hidden -> liste de champs cachés pour éviter de les afficher publiquement

$casts -> méthode pratique de conversion d’attributs


Laravel: création d’un modèle

Création d’un modèle d’exemple: Dog

> php artisan make:model Dog


Laravel: création d’instance avec Tinker
Laravel: les migrations
Laravel: lancer les migrations

> php artisan migrate


Laravel: vérification des migrations sur PMA
Laravel: création de la migration d’un modèle

> php artisan make:migration create_dogs_table

On ajoute les champs name et age dans la migration

>php artisan migrate


Laravel: commandes utiles de migration

> php artisan make:model Cat -m


va créer un modèle et la migration associée

> php artisan migrate:rollback


va permettre d’annuler la dernière migration effectuée (dernier batch)

> php artisan migrate: reset


va supprimer toutes les tables en une seule commande

> php artisan migrate:refresh


va supprimer puis recréer toutes les tables en base de données
Laravel: les controllers
Laravel: routing vers controllers
Laravel: les controllers ‘invokable’
Laravel: les controllers ‘resource’

index -> pour lister les articles

create -> pour avoir le formulaire de création d’un article

store -> sauvegarder les informations via le formulaire

show -> afficher un article en particulier

edit -> montrer le formulaire d’édition d’un article

update -> sauvegarde les modifications de l’édition ci dessus

destroy -> supprimer l’article en question en base


Laravel: routes prédéfinies des controllers resource
Laravel: création d’une route resource

Cela permettra d’utiliser toutes les routes présentes par défaut


pour un controller de type resource (cf slide précédente)
Laravel: les requests
Un élément request nous permet de récupérer des informations sur une requête effectuée sur
notre serveur comme par exemple l’envoi des données d’un formulaire.

On peut afficher les informations de celle-ci en effectuant un “dump & die” (dd).
Laravel: conditionnement des requests
Laravel: le système de validation

La méthode validate de notre élément request va venir prendre en paramètre un tableau


associatif qui va associer le nom de certains champs à des règles de validation
Laravel: gestion des erreurs de validation
Laravel: personnaliser ses requests

php artisan make:request ArticleRequest


Laravel: les middlewares

kernel.php
Laravel: créer un middleware

php artisan make:middleware AuthMiddleware

kernel.php
Laravel: les factories

php artisan make:factory ArticleFactory


Laravel: les seeders

php artisan make:seeder ArticleSeeder

php artisan db:seed --class=ArticleSeeder


Laravel: récupérer des données de la base

Dans notre controller ressource


pour nos articles on passe à notre
vue la liste des articles récupérés
grace à la méthode all() sur notre
modèle Article
Laravel: afficher des données de la base
Laravel: la pagination

Dans notre controller

Dans notre vue


Laravel: pagination personnalisée
Dans views -> créer un dossier vendor puis pagination puis fichier custom.blade.php
Laravel: utiliser notre pagination personnalisée

Dans notre vue vendor/pagination/custom.blade.php

La méthode links peut prendre une vue en paramètre


Laravel: pagination précédent/suivant
Laravel: les observers

php artisan make:observer ArticleObserver --model=Article


Laravel: ajout d’observer dans AppServiceProvider
Laravel: les helpers
Laravel: remplacer notre slug par un helper

On modifie donc la fonction created de notre observer afin


d’utiliser le helper Str::slug
Laravel: route dynamique

Dans web.php

Dans notre vue


Laravel: méthode show
Dans notre controller

Dans notre vue article.blade.php


Laravel: ajout de l’authentification

composer require laravel/ui

php artisan ui vue --auth

Cela va ajouter un dossier auth dans “controllers” et “views”

On va ensuite remplacer les extends de nos views afin qu’elle


soit en relation avec la base que nous avons alors créée

Vous aimerez peut-être aussi