Académique Documents
Professionnel Documents
Culture Documents
1
SOMMAIRE
Sommaire ................................................................................................................................... 1
Etape 1........................................................................................................................................ 3
1 - Laravel (v1) ..................................................................................................................................... 3
Principes du cours......................................................................................................................................... 3
Laravel : framework PHP pour les artisans du web ...................................................................................... 3
Qu’est-ce que Laravel : c’est un framework PHP .....................................................................................................3
Site interet : https://laravel.com/ ............................................................................................................................3
Laravel 9 actuellement (en 2022). ............................................................................................................................3
Concepts de base :........................................................................................................................................ 3
Prérequis : ..................................................................................................................................................... 4
Rappel d’une architecture WEB de base. .................................................................................................................4
2 - Installer Laravel (v3, v4) ................................................................................................................... 5
Mise en garde : attention ............................................................................................................................. 5
Composer :.................................................................................................................................................... 6
Présentation..............................................................................................................................................................6
Tester la présence de composer sur votre machine : ..............................................................................................6
Aide en ligne de commande .....................................................................................................................................6
Bizarreries Sur mac ...................................................................................................................................................7
Packagist ....................................................................................................................................................... 8
PHP................................................................................................................................................................ 8
Créer une application laravel :...................................................................................................................... 9
Principes ....................................................................................................................................................................9
Un dossier pour toutes nos applications ..................................................................................................................9
1 : avec composer create-project (on peut ne faire que ce cas là) ........................................................................10
2 : avec laravel/installer ..........................................................................................................................................11
3 : avec Laragon ......................................................................................................................................................12
Démarrer une application Laravel .............................................................................................................. 13
php artisan ..............................................................................................................................................................13
Démarrage du server ..............................................................................................................................................14
Démarrage de l’application dans un navigateur ....................................................................................................15
Rappel du fonctionnement client - serveur web ....................................................................................................16
3 – Architecture, manipulation et bilan (v3, v4) ....................................................................................17
Architecture d’un projet Laravel : .............................................................................................................. 17
Quelques fichiers à regarder pour commencer .....................................................................................................17
Les dossiers installés ...............................................................................................................................................18
2 premiers répertoires dans le répertoire app : .....................................................................................................20
Autres répertoires du répertoire app (pour plus tard) ...........................................................................................20
Manipulation d’un projet laravel................................................................................................................ 21
Taille du dossier ......................................................................................................................................................21
Suppression du dossier vendor et composer update .............................................................................................21
Modification de l’affichage .....................................................................................................................................22
Etape 2.......................................................................................................................................23
0 - Présentation ..................................................................................................................................23
Principe du document ................................................................................................................................ 23
Objectifs à atteindre ................................................................................................................................... 23
Objectifs de l’étape 2.................................................................................................................................. 23
1 - Laravel (v1)
Principes du cours
Les parties surlignées de bleu correspondent à des installation ou exercices à faire.
Les parties surlignées en jaune sont des concepts importants.
Concepts de base :
• Installation – Composer – Packagist
• Architecture d’un projet Laravel. MVC (on revient sur le MVC à l’étape 3).
• Routage (pour faciliter les chemins d’accès aux pages du site)
• ORM Eloquent (pour faciliter l’usage de la BD). La notion de « migration ».
• Moteur de templates Blade (pour faciliter l’écriture des Vues du MVC).
• La commande « php artisan »
Présentation
• Pour pouvoir utiliser Laravel, on commence par installer « Composer ».
• Le site de « Composer » permet son installation : https://getcomposer.org/
• « Composer » permet d’installer une application Laravel avec toutes ses dépendances.
• Composer installe les versions des packages qui doivent être installés en les téléchargeant dans
votre projet.
• De façon générale, si on a un projet qui dépend de bibliothèques et que certaines de ces
bibliothèques dépendent d'autres bibliothèques, Composer vous permet de mettre à jour toutes
les dépendances en une seule commande, en déclarant seulement les bibliothèques dont vous
dépendez (c’est la commande « composer update »).
• Pour utiliser « composer », tout se passe dans le fichier composer.json à la racine de votre
projet. Ce fichier va définir toutes les informations concernant votre projet ainsi que toutes ses
dépendances : la clé require précise les modules et bibliothèques dont on a besoin ainsi que
leurs versions.
• Composer est un équivalent du « npm » pour node.js.
php composer-setup.php
mv composer.phar /usr/local/bin/composer
PHP
• Laravel utilise du PHP, il faut donc que le PHP soit installé sur nos machines.
Principes
https://laravel.com/docs/9.x/configuration
• 3 techniques :
− avec composer create-project : le plus simple
− avec laravel/installer : plus compliqué
− avec Laragon : que sous Windows
• Pour tout installer, on utilisera en priorié la première technique.
➢ Principes
• Composer propose des outils qui vont installer un squelette d’application PHP avec un serveur
WEB.
➢ Documentation Laravel :
• https://laravel.com/docs/8.x/installation#installation-via-composer
➢ Documentation getComposer :
• https://getcomposer.org/doc/03-cli.md#create-project
• Vieille version :
>composer create-project –prefer-dist laravel/laravel monApp
• La commande php artisan serve démarre le serveur de développement et précise l’adresse pour
accéder à l’application dans un message :
Starting Laravel development server: http://127.0.0.1:8000
➢ Installer :
• On commencer par installer le laravel/installer comme dépendance globale de Composer.
>composer global req laravel/installer
• Sur PC :
− On ajoute une nouvelle variable d’environnement :
%USERPROFILE%\AppData\Roaming\Composer\vendor\bin
− Pour accéder aux variables d’environnement : cherchez variables, allez dans modifier les
variables d’environnement, cliquez sur variables d’environnement, double-cliquez sur le
path des variables utilisateur, ajoutez la variable.
− On peut alors exécuter laravel dans un terminal
• Sur Linux :
− Cf doc laravel et google !
➢ Démarrer le serveur
>cd monApp
>php artisan serve
• La commande php artisan serve démarre le serveur de développement et précise l’adresse pour
accéder à l’application dans un message :
Starting Laravel development server: http://127.0.0.1:8000
3 : avec Laragon
• Laragon est un très bon outil mais disponible uniquement sur Windows !
• http://laragon.org
php artisan
• « php artisan » est l'interface de ligne de commande incluse avec Laravel.
• La commande « php artisan » s’utilise dans un projet laravel.
➢ Aide en ligne
• On commence par se mettre dans son projet :
>cd monApp
➢ Documentation complète
• https://laravel.com/docs/8.x/artisan
• Documentation spécifique -> par exemple
php artisan migrate
• On obtient un message :
Starting Laravel development server: http://127.0.0.1:8000
➢ Résultats Laravel 8 :
➢ Résultats Laravel 7 :
➢ .env
• Il contient entre autres des infos sur la BD :
− le type de BD : mysql,
− l’utilisateur, son mot de passe : à adapter à votre système (root sans mot de passe sur PC,
root mot de passe root sur Mac)
− le nom de la BD (pour la BD, la collation utf8mb4_general_ci permet d’intégrer les
smiley) : il faut créer une BD correspondant à ce nom pour développer l’application.
➢ composer.json
• La clé « require » précise les dépendances de notre application laravel.
➢ app
− Contient tout le code généré pour l’application.
− Il contient de nombreux autres répertoires qui sont détaillés après.
➢ bootstrap
− Permet l’initialisation du framework bootstrap.
➢ config
− Contient l’ensemble des fichiers de configurations de l’application.
➢ database
− Contient les informations pour le SGBD.
➢ node_modules
− Contient les packages pour Nodes si on l’utilise.
➢ resources
− Contient, dans le dossier « views », l’ensemble des fichiers de Vues gérés par défaut par le
moteur de template de Laravel : Blade.
− Contient les fichiers de langues dans le cas d’une application multilingues.
➢ routes
− Contient des fichiers listant l’ensemble des routes utilisées par votre application.
➢ storage
− Contient des fichiers compilés automatiquement par le système.
➢ tests
− Contient les tests unitaires. Laravel utilse PHPUnit.
➢ Vendor
− Contient les dépendances Composer associées à l’application (c’est l’équivalent de
node_modules pour Nodes).
➢ Http
• Contient les contrôleurs de l’architecture MVC.
• Documentation Laravel associée : https://laravel.com/docs/9.x/controllers
➢ Models
• Contient les modèles de l’architecture MVC (les classes correspondant à la BD).
• Documentation Laravel associée : https://laravel.com/docs/9.x/eloquent
➢ Exceptions
• https://laravel.com/docs/9.x/errors
➢ Providers
• https://laravel.com/docs/9.x/providers
Taille du dossier
• Dossier monApp : 35 MO
• Dossier vendor : 34,6 MO
0 - Présentation
Principe du document
Les parties surlignées de bleu correspondent à des installation ou exercices à faire.
Les parties surlignées en jaune sont des concepts importants.
Objectifs à atteindre
• Le cours et les différentes étapes de TP à partir de l’étape 2 consistent à produire une
application ressemblant à :
Objectifs de l’étape 2
• Se familiariser avec Laravel.
Objectifs
• Laravel nous permet de mettre en place des fonctionnalités plus facilement en installant des
packages tout près.
• On va installer un package pour l’authentification (utilisateur, login, mot de passe, etc):
C’est le package « ui »
C’est un package d'authentification des utilisateurs (Il y a plus récent, comme « breeze » :
https://github.com/laravel/breeze)
• Pour ça, on va installer les tables de la BD pout gérer les utilisateurs.
Vieille documentation sur la BD : certaines descriptions de tables peuvent encore
correspondre, mais c’est la version 5.3 et on en est à la version 8 en 2021.
• L’installation du package installe plusieurs routes.
Les routes sont des urls d’accès à l’application (au site WEB).
On va créer une page « à la main » avec une seule route.
− Ou :
>$HOME/.composer/vendor/bin/laravel new matodolist
➢ On teste le projet
>cd matodolist
>php artisan serve
Il faut démarrer un serveur MySQL : on peut le faire à partir d’un XAMPP (à éviter sur
Mac pour Laravel), WAMP (sur PC), MAMP (sur Mac) ou Laragon (que sur PC) ou ou « à
la main.
Vérifier la cohérence du port de MySQL : probablement 3306
➢ Création de la BD « matodolist »
• Dans le fichier .env, mettez le bon DB_DATABASE :
DB_DATABASE = matodolist
• La table migration enregistre les migrations effectuées : c’est la première table créée.
mysql> select * from migrations;
+----+------------------------------------------------+-------+
| id | migration | batch |
+----+------------------------------------------------+-------+
| 1 | 2014_10_12_000000_create_users_table | 1 |
| 2 | 2014_10_12_100000_create_password_resets_table | 1 |
| 3 | 2019_08_19_000000_create_failed_jobs_table | 1 |
+----+------------------------------------------------+-------+
Avant :
php artisan make:hote # générait les vues nécessaire
Maintenant:
• Un package à installer : le package « ui »
Le package « ui »
• packagist.org : chercher ui
laravel/ui : on trouve des informations sur l’installation.
• On peut aussi regarder sur github, on y trouve des informations sur le package ui
https://github.com/laravel/ui : on trouve aussi des informations sur github : entre autres des
packages pour remplacer ui.
On utilise require --dev pour le développement. Pour la production on peut s’en passer.
La commande « composer require » permet de charger un package : ici « ui ».
• Il faut effectuer ces deux commandes : « npm install » et « npm run » pour charger et compiler
des éléments Nodes nécessaires à l'authentification et générer le CSS et JavaScript nécessaires
à l'authentification.
• Il faut passer plusieurs fois les commandes si nécessaire jusqu’à ce qu’il n’y ait plus d’erreurs.
• Les commandes :
> npm install && npm run dev
> npm install && npm run dev
On a le « login » et le « register » :
Version sombre :
• Seuls les routes avec un méthode GET (ou HEAD) sont accessibles par l’URL : on peut toutes
les tester :
http://localhost:8000/ : amène à la page d’accueil. La route d’entrée est donc :
http://127.0.0.1:8000/ ou http://localhost:8000/
http://localhost:8000/register : amène sur la page de création d’un utilisateur si personne
n’est logué, ou sur la page home de l’utilisateur logué.
http://localhost:8000/login : amène sur la page de login
http://localhost:8000/home : amène sur la page de login si personne n’est logué, ou sur la
page home de l’utilisateur logué.
http://localhost:8000/password/reset : amène sur une page de reset d’un password.
http://localhost:8000/password/reset/1 : amène sur une page de changement de password.
http://localhost:8000/logout : ne marche pas : c’est une route avec une méthode POST.
Routes
Auth::routes();
La route « '/home' » : c’est la page d’accueil une fois logué.
Les routes de Auth : ce sont toutes les routes d’authentification. On retrouve le nom
« Auth » dans le dossier des actions des routes dans la commande php artisan routes :list.
➢ Fichier App\Http\Controllers\HomeController.php
• C’est le controller appelé par la route « /home »
• Ce contrôleur appelle une vue (du HTML) :
return view('home');
View
➢ Fichier ressources/views/home.blade.php
• C’est la vue appelée par le controller.
• C’est un fichier « blade » : un template qui intègre du HTML et du PHP.
Commande
Fichiers modifiés
➢ Route
− routes/web.php
➢ Controller
− App\Http\Controllers\HomeController.php
− App\Http\Controllers\Auth\*
➢ View
− ressources/views/home.blade.php
− ressources/views/Auth\*
➢ node_modules
− on a créé un dossier node_modules