Académique Documents
Professionnel Documents
Culture Documents
PHP
Ebobissé Yves Frédéric
yebobisse.emsi@gmail.com
A - Laravel
1 - Introduction
* Prérequis , Installation & Configurations
* Le Routage & les Façades
* Les Vues : Moteur de template Blade
* Les Réponses
* Les Contrôleurs
* Les Entrées & Formulaires & Validation
* Les Configuration et Les Sessions
EMSI 2017- 2018 / 3IIR
Plan du Cours
A - Laravel
2 – Migrations et Modèles
* Eloquent : ORM
* Relations 1: 1
* Relations 1: N
* Relations N: N
* Laravel Schema Designer // DB Designer
- Apprendre à :
1. Installer
2. Configurer
3. Développer à l’aide de ces frameworks
Introduction
Design Patter / Modèle MVC
- M : Modèle
Contrôleur
- V : Vue
- C : Contrôleur
Modèle Vue
Introduction
Design Patter / Modèle MVC
- V : Vue :
Gère tout ce qui est affiché sur le Contrôleur
navigateur par exemple :
Formulaire, page de résultats,
etc..
Utilise principalement du HTML
mais aussi du php et des
annotations spécifiques liées au Modèle Vue
framework
Introduction
Design Patter / Modèle MVC
- M : Modèle
Gère toutes les relations avec la Contrôleur
base de données :
1. Requêtes d’insertion, de
suppression, modification,
etc…
Modèle Vue
2. Retourne un résultat brut sans
Html
Introduction
Design Patter / Modèle MVC
- C : Contrôleur
Gère les interactions entre la vue Contrôleur
et le modèle. Il est utilisé pour :
- C : Contrôleur
Gère les interactions entre la vue Contrôleur
et le modèle. Il est utilisé pour :
A - Laravel
1 - Introduction
* Prérequis , Installation & Configurations
* Le Routage & les Façades & Vues
* Les Réponses
* Les contrôleurs
* Les Entrées / Le Moteur de template Blade
* Les Configuration et Les Sessions
EMSI 2017- 2018 / 3IIR
Laravel
Version 5.6
- Et :
un système d'envoi d'emails,
un système de cache,
un système d'événements,
un système d'autorisations,
une gestion des sessions...
Pré requis :
https://getcomposer.org/download/
Se base sur un format de Fichier JSON qui décrit les outils nécessaires pour pou
voir créer une application et où les récupérer par exemple sur internet.
Pré requis
Installation :
Lancer la commande
composer create-project --prefer-dist laravel/laravel laravel5
Installation & Pré requis : Composer
Méthode 2 :
composer require "laravelcollective/html":"5.6.*"
Organisation des fichiers :
• Config : dossier contenant les paramètres de configuration liés à votre application par exemple,
paramètres de connexion à la base de données, systèmes de fichiers, fichiers journaux,
mails,etc…
• Public : partie accessible à partir du navigateur, de votre application, contiendra les images, css,
javascript.
•Vendor : contient les applications tiers / 3rd party / composants de Laravel et leurs dépendances
Routage & Façades:
Méthode d’envoi: get/post/…..
URL
route
1
3 Vue :
welcome
Routage & Façades:
1. Routes
• Servent à indiquer où seront analysées et dirigées les requêtes provenant du navigateur
• Elles sont définies dans le dossier /routes/web.php
Pour chacune des pages de votre application il faudra donc définir une route.
Route::get('1', function() { return 'Je suis la page 1 !'; });
Route::get('{n}', function($n) { return 'Je suis la page ' . $n . ' !'; });
Accéder à la page localhost/laravel5/public/1
Travail à réaliser
1- Créer une route user retournant un message « bienvenue cher utilisateur sur la page
d’accueil»
3- Puisque le nom de l’utilisateur ne doit contenir que des caractères alphabétiques, ajouter une
contrainte pour ne recevoir que des lettres majuscules et minuscules
4- Créer une vue produit qui ne pourra recevoir que des entiers
Routage & Façades:
2- Façades ou Alias
• Les bibliothèques et classes sont définies chacune dans des fichiers séparés.
Pour éviter les conflits de nom au cours de l’utilisation des classes, Laravel définit des Alias ou des
Façades
Route::get('{n}', function($n) { return 'Je suis la page ' . $n . ' !'; });
Dans ce code Route :: est une façade
Le protocole http retourne des réponses avec des codes à toutes requêtes
effectuées pour une requête (page)
Exemple 200 => ok , 500 => Erreur, 404 => adresse/page introuvable
Route::get('{n}', function($n) { return response('Je suis la page ' . $n . ' !', 200);})->wh
ere('n', '[1-3]');
Vues :
Les vues sont créées dans le dossier resources/views/ et correspondent au code
HTML qui sera affiché sur le navigateur.
Il faut définir la structure et la navigation au sein de votre application et identifier les pages à utiliser et
Les vues qui seront nécessaires
1. 1- Vues paramétrées
Si je veux transmettre une information à une vue je dois passer par un paramètre
Exemple http://url_base/article/n
Article : partie fixe, correspondra par exemple à la page générée pour l’affichage d’un
produit
n : partie variable, spécifie par exemple l’id du produit que je cherche à consulter
Vues :
1. 1- Définitions de Vues paramétrées
Les conditions
@if(condition ) @switch($var )
//code condition vérifié @case(val)
@elseif(condition) //code
//Code condition @break
@else @case(val)
//code du else //code
@endif @break
@endswitch
@isset($var) @empty($var)
//code condition vérifié //code condition vérifié
@endisset @endempty
Vues :
1. Moteur de template Blade
Le rôle de ce moteur est de simplifier la syntaxe et le code tout en ajoutant des couches de sécurité
Les boucles
@for($i=0;$i<=10;$i++ ) @foreach($p as $t)
//code //code
@endfor(condition) @endforeach
@while(condition)
//code condition vérifié
@endwhile
https://laravel.com/docs/5.6/blade
Vues :
template vue
@yield(‘titre’) @section(‘titre’)
//Définir le code qui correspond à la se
ction que vous voulez.
@endsection
Vues:
Travail à réaliser
1- Créer une route user retournant un message « bienvenue cher utilisateur sur la page
d’accueil»
3- Puisque le nom de l’utilisateur ne doit contenir que des caractères alphabétiques, ajouter une
contrainte pour ne recevoir que des lettres majuscules et minuscules
4- Créer une vue produit qui ne pourra recevoir que des entiers pour afficher des informations sur
1 prodiut sachant que le nombre est compris entre 1 et 7
Les contrôleurs :
Rôle : récupère la requête déjà triée par la route et définit la réponse appropriée à donner.
Les contrôleurs :
Rôle : récupère la requête déjà triée par la route et définit la réponse appropriée à donner.
Il s’agit d’une classe héritant de la classe Controller et possédant des méthodes qui vont renvoyer vers
des vues
1- Intégration du contrôleur :
B- Définir le contenu de la méthode index() dans le fichier WelcomeController.php
Le contenu de cette méthode n’est rien d’autre que le code
return view(‘welcome’); // qui avait été défini directement dans la route
Route::get(‘/’, ‘WelcomeController@index’);
Route::get(‘personne/{name}’, ‘PersonneController@afficher’);
NB : Un contrôleur peut avoir plusieurs méthodes qui retourneront des vues différentes. Il faut créer les
Routes en changeant simplement la méthode appelée
Vues:
1- Créer une route user retournant un message « bienvenue cher utilisateur sur la page
d’accueil»
3- Puisque le nom de l’utilisateur ne doit contenir que des caractères alphabétiques, ajouter une
contrainte pour ne recevoir que des lettres majuscules et minuscules
4- Créer une vue produit qui ne pourra recevoir que des entiers pour afficher des informations sur
1 produit sachant que le nombre est compris entre 1 et 7
Les entrées et Formulaires :
Route users
Fichier forminfos.blade.php
Les entrées et Formulaires :
Fichier template1.blade.php
Les entrées et Formulaires :
Fichier WelcomeController.php
Fichier affichage.blade.php
Entrées et Formulaires:
Travail à réaliser
1- Générer les routes et le contrôleur associé CommandController.php qui permet d’accéder au
formulaire suivant
CommandForm
Mr Mme Mlle
Nom
Prénom
Produit Telephone/Montre/bracelet
Quantite
Age
Livraison à domicile
Annuler Commander
Entrées et Formulaires:
Travail à Facture
réaliser
2- Générer l’affichage Merci Mr Aziz Chamkhi les détails de votre
de la vue suivante commande de téléphone sont les suivants:
facture.blade.php
Entrées et Formulaires:
Notation Formulaires
Element/balise
<form> </form> {{Form::open([‘url’=>’valeur_url’ ])}} {{Form::close()}}
Label {{ Form::label(‘nom_balise_associée’, ‘texte_affiché’)}}
Zone de texte {{ Form::text(‘name’, ‘texte_affiché’)}}
NB : nécessite le package "laravelcollective/html":"5.6.*" dans le fichier Json ainsi que la définition des façades adéquates
Il existe d’autre composants pour créer des formulaires laravel-form-builder
https://laravelcollective.com/docs/master/html
Entrées et Formulaires:
Validation de Formulaires
Le contrôleur permet de valider les valeurs fournies dans un formulaire
Si les valeurs ne sont pas conformes à la validation, l’utilisateur est renvoyé vers le formulaire
Entrées et Formulaires:
Validation de Formulaires
Le contrôleur permet de valider les valeurs fournies dans un formulaire
Méthode 2 : Définir une requête spécifique à votre formulaire et y inclure les règles de validation dans
la méthode rules (){}
Exécuter la commande php artisan make:request FormRequest
Aller dans le répertoire /app/http/requests
Dans le return , spécifier pour chaque élément de
formulaire les valeurs requises sous forme d’un ta
bleau associatif
return [
'texte' => 'required|max:250'
];
https://laravel.com/docs/5.6/validation
Entrées et Formulaires:
Validation de Formulaires
Le contrôleur permet de valider les valeurs fournies dans un formulaire
Si le formulaire n’est pas valide, un objet errors est créé et retourné vers le formulaire.
Il contient toutes les erreurs de validation de votre formulaire
Pour les afficher dans le code du formulaire ajouter
Travail à réaliser