Laravel – P1 – page 1/35
LARAVEL (8-2021) – FRAMEWORK PHP 1
SOMMAIRE
Sommaire ... 1
Etape 1 ... 3
1 - Laravel (v1) ... 3
Principes du cours... 3
framework PHP pour les artisans du web ... 3
Concepts de base : ... 3
Prérequis : ... 3
2 - Installer Laravel (v3, v4) ... 4
Mise en garde : attention ... 4
Composer : ... 4
Packagist ... 4
Créer une application laravel :... 5
Principes ... 5
Un dossier pour toutes nos applications ... 5
1 : avec composer create-project ... 6
2 : avec laravel/installer ... 7
3 : avec Laragon ... 8
Démarrer une application Laravel ... 9
Résultats du server ... 9
Résultats Laravel 8 : ... 9
Résultats Laravel 7 : ... 9
Rappel du fonctionnement client - serveur web ...10
Architecture d’un projet Laravel : ... 11
Quelques fichiers à regarder ...11
Quelques répertoires ...12
Quelques répertoires dans le répertoire app : ...14
Manipulation d’un projet laravel... 16
Taille du dossier ...16
Suppression du dossier vendor et composer update ...16
Modification de l’affichage ...17
Bilan des commandes ... 18
Synthèse ...18
Composer ...19
laravel installer ...20
php ...21
php artisan ...21
3 – TP : Exemple traité : todo-list (v2) ...22
Objectifs à atteindre ... 22
Installation de l’application todo-list ... 23
Pistes de solutions : ... 24
Principe general ...24
laravel/dusk ...24
mise à jour du framework dans composer.json ...24
composer update ...24
500 : Server Error ...24
Utilisation de l’application ... 25
Méthode ...25
Laravel – P1 – page 2/35
Menu Register : création d’un utilisateur ...25
Création de tâches par John Doe ...28
Création de nouveaux utilisateurs ...28
Affectation d’une tâche de John Doe à Fred ...29
Bilan des commandes ... 35
Commandes : ...35
Fichier manipulés : ...35
Documentation : ...35
Erreur au retour ! ...35
Laravel – P1 – page 3/35
ETAPE 1
1 - Laravel (v1)
Principes du cours
Les parties surlignées de bleu correspondent à des installation ou exercices à faire.
framework PHP pour les artisans du web
• https://laravel.com/
• Exemple et avantages : https://www.netfillip.com/technologies/laravel-development-company/
• Laravel 8 actuellement.
Concepts de base :
• Installation
• Routage
• MVC
• ORM Eloquent
• Moteur de templates Blade
• etc.
Prérequis :
• PHP
• P.O.O.
• HTML
• CSS
Laravel – P1 – page 4/35
2 - Installer Laravel (v3, v4)
Mise en garde : attention
• L’installation peut s’avérer compliquée (ou se passer sans problème) ! Il ne faut pas se décourager.
• Quand on passe des commandes en ligne de commandes, il faut lire les messages qui s’affiche (au moins la fin) : on y trouve parfois des pistes de solutions.
• Il faut chercher sur Google des solutions.
• Accrochez-vous. On finit par y arriver !
Composer :
• https://getcomposer.org/
• « composer » est un équivalent du « npm » pour node.js : un gestionnaire de dépendances entre applications et librairies. Il permet d’installer des applications avec toutes leurs dépendances.
• « composer » permet de gérer pour chaque projet, la liste des modules et bibliothèques nécessaires à son fonctionnement ainsi que leurs versions.
• 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.
• Tester la présence de composer sur votre machine :
composer --version
• Si composer n’est pas présent, installer le sur votre machine.
Packagist
• https://packagist.org/ = PHP Package Repository = dépôt de paquets PHP
• Ce site permet de chercher tous les packages disponibles mais aussi d’enregistrer vos propres packages.
Laravel – P1 – page 5/35
Créer une application laravel :
Principes
https://laravel.com/docs/8.x/configuration
• 3 techniques :
− avec composer create-project
− avec laravel/installer
− avec Laragon (que sous Windows)
• Pour tout installer, on utilisera les 2 premières techniques.
Un dossier pour toutes nos applications
• Dans votre dossier de cours Laravel, créez un dossier Applications
− Ouvre un terminal dans un dossier Lavarel/Applications
Laravel – P1 – page 6/35 1 : avec composer create-project
• Documentation Laravel :
− https://laravel.com/docs/8.x/installation#installation-via-composer
Résumé :
>composer create-project laravel/laravel monApp
>cd monApp
>php artisan serve
Installer :
>composer create-project laravel/laravel monApp
• Vieille version :
>composer create-project –prefer-dist laravel/laravel monApp
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
Laravel – P1 – page 7/35 2 : avec laravel/installer
• Documentation Laravel :
− https://laravel.com/docs/8.x/installation#the-laravel-installer
Résumé :
>composer global req laravel/installer
># mise à jour du path
>laravel new monApp
>cd monApp
>php artisan serve
Installer :
• On commencer par installer le laravel/installer comme dépendance globale de Composer.
>composer global req laravel/installer
• On crée une application avec laravel :
>laravel new monApp
• Problème : laravel n’est pas reconnu !!!
Il faut mettre à jour le $PATH (variable d’environnement)
• Sur MAC :
>echo $PATH
>export PATH=$PATH:$HOME/.composer/vendor/bin
>echo $PATH
− La modification ne sera valable que sur le terminal où l’on fait l’export.
− On peut alors exécuter laravel dans ce terminal
− On peut aussi ne pas changer le path et passer la commande :
>$HOME/.composer/vendor/bin/laravel new monApp
• 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
Laravel – P1 – page 8/35 3 : avec Laragon
• Laragon est un très bon outil mais disponible uniquement sur Windows !
• http://laragon.org
Laravel – P1 – page 9/35
Démarrer une application Laravel
Résultats du server
• Une fois le serveur démarré :
>cd monApp
>php artisan serve
• On obtient un message :
Starting Laravel development server: http://127.0.0.1:8000
• Dans un navigateur, on passe l’adresse renvoyée par php artisan serve :
− http://127.0.0.1:8000 ou encore :
− http://localhost:8000 Résultats Laravel 8 :
Résultats Laravel 7 :
Laravel – P1 – page 10/35 Rappel du fonctionnement client - serveur web
Laravel – P1 – page 11/35
Architecture d’un projet Laravel :
• Explications sur l’architecture du projet
ici : doc ici
et là : https://laravel.com/docs/8.x/structure Quelques fichiers à regarder
.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.
Laravel – P1 – page 12/35 Quelques répertoires
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
config
− Contient l’ensemble des fichiers de configurations de l’application.
public
− Point d’entrée unique de l’application par l’intermédiaire du fichier « index.php ».
− Seul répertoire visible de l’extérieur. Tous les autres sont cachés et protégés des attaques de l’extérieur.
− Contient également vos différents assets tels que les images, les fichiers CSS et JavaScripts compilés.
Laravel – P1 – page 13/35
resources
− Contient, dans le dossier « views », l’ensemble des fichiers de vues gérés par défaut le moteur de template de Laravel : Blade.
− Contient également d’autres ressources tels que les fichiers non compilés LESS, SASS ou JavaScript.
− Contient les fichiers de langues dans le cas d’une application multilingue.
− Il contient le fichier « ressources / views
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. Laravel utilse PHPUnit.
Vendor
− Contient les dépendances Composer associées à l’application.
Laravel – P1 – page 14/35 Quelques répertoires dans le répertoire app :
− L’essentiel de l’application se trouve dans le répertoire app.
Console (make:command)
− Contient des commandes « artisan »
Events (make:event)
− Contient des classes « evenement » de pattern « observer »
Exceptions
− Contient le gestionnaire de vos exceptions (Handler.php).
− Permet la centralisation des exceptions levées par l’application.
Http
− Contient les controllers, les middlewares et les requêtes de formulaires.
− Quasiment toute la logique pour traiter les requêtes entrant dans l’application sera placée dans ce répertoire.
Jobs (make:job)
− Contient les tâches qu’on peut mettre en fil d’attente.
Laravel – P1 – page 15/35
Listeners (make:event)
− Contient les classes qui répondent aux événements.
Mail (make:mail)
− Contient les classes qui gèrent les mails envoyés par l’application.
Notifications (make:notification)
− Contient les mécanismes de gestion des notifications.
Policies (make:policy)
− Contient les classes de politiques d'autorisation pour l’application.
Providers
− Contient tous les fournisseurs de services pour votre application.
Rules (make:rule)
− Contient les règle de validation personnalisés.
Laravel – P1 – page 16/35
Manipulation d’un projet laravel
Taille du dossier
• Dossier monApp : 35 MO
• Dossier vendor : 34,6 MO
Suppression du dossier vendor et composer update
• On peut supprimer le dossier vendor : notre application ne pèse plus que 0,43 MO !
« php artisan serve » ne marche plus
• On peut refabriquer le fichier vendor :
>composer update
>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
Laravel – P1 – page 17/35 Modification de l’affichage
• Le fichier de description de la page d’accueil est dans le dossier « ressources / views »
Fichier « ressources / views / welcome.blade.php »
• Pour le trouver, on peut chercher « bigcartel » qui est le lien de Shop
On le trouve dans « ressources / views / welcome.blade.php »
On le trouve aussi dans le dossier « storage » qui contient des fichiers compilés, donc fabriqués automatiquement par le système.
• Modifiez le fichier welcome.blade.php pour obtenir le résultat suivant :
On a rajouté « cours IFAA de Laravel ». Le lien amène sur la page du site avec le cours laravel de l’IFAA.
Laravel – P1 – page 18/35
Bilan des commandes Synthèse
>composer create-project laravel/laravel monApp
>composer global req laravel/install
>laravel new monApp
>$HOME/.composer/vendor/bin/laravel new monApp
>php artisan serve
Laravel – P1 – page 19/35 Composer
Principes
• https://getcomposer.org/
• Composer est un outil de gestion des dépendances en PHP. Il vous permet de déclarer les bibliothèques dont dépend votre projet et il les gérera (installera / mettra à jour) pour vous.
• Si vous avez 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 vos dépendances en une seule commande, en déclarant seulement les bibliothèques dont vous dépendez. Composer installe les versions des packages qui doivent être installés en les téléchargeant dans votre projet.
• Le fichier de configuration s’appelle composer.json.
• La clé require précise les bibliothèques dont on a besoin.
• Composer est un équivalent du « npm » pour node.js
Aide en ligne de commande
>composer -V
>composer -h
>composer list
• Usage basique : https://getcomposer.org/doc/01-basic-usage.md
• Liste des commandes : https://getcomposer.org/doc/03-cli.md
• Composer create-project : https://getcomposer.org/doc/03-cli.md#create-project
Laravel – P1 – page 20/35 laravel installer
Aide en ligne de commande
>$HOME/.composer/vendor/bin/laravel -V
>$HOME/.composer/vendor/bin/laravel -h
>$HOME/.composer/vendor/bin/laravel list
• Il n’y a qu’une commande : la commande « new »
>$HOME/.composer/vendor/bin/laravel new monApp
• On s’en passe très bien avec le composer create-project.
Laravel – P1 – page 21/35 php
Aide en ligne de commande
>php –-version
>php -v
>php -h
php artisan
• Artisan est l'interface de ligne de commande incluse avec Laravel.
• La commande « php artisan » s’utilise dans un projet laravel.
Aide en ligne
>cd monApp
>php artisan --version
>php artisan list
Documentation complète
• https://laravel.com/docs/8.x/artisan
• Exemples :
php artisan migrate
Premier usage : démarrer le serveur
>php artisan serve
• La commande Laravel « php artisan serve » permet d'exécuter des applications sur le serveur de développement PHP.
• Elle propose un port disponible pour démarrer un client.
• https://laravel.com/docs/8.x/installation#installation-via-composer
Laravel – P1 – page 22/35
3 – TP : Exemple traité : todo-list (v2)
Objectifs à atteindre
• Le TP consiste à produire une application ressemblant à :
• On va partir d’un framework qu’il faut installer, ce qui pose quelques difficultés.
• Ensuite on pourra utiliser l’application et y mettre des utilisateurs et des todos.
• On commence par regarder le résultat final :
Le dossier est uniquement sur la machine prof !
Votre objectif pendant le TP sera de fabriquer l’équivalent ce dossier à partir du framework téléchargé.
cd 4-laravel-todo-composer-depart php artisan serve
Laravel – P1 – page 23/35
Installation de l’application todo-list
• Chargez l’exemple de la todo-list : <ici>
• Regardez le fichier composer.json:
Le fichier composer.json : verifier que votre php est à jour : php -v
S’il n’est pas à jour, mettez-me à jour.
• Charger les dépendances :
>Composer update
En cas de problème, voyez le paragraphe vert suivant : piste de solutions.
• Si les dépendances ont bien été chargées :
Le dossier « vendor » a été créé.
Démarrer le serveur :
>php artisan serv.
En cas de problème, voyez le paragraphe vert suivant : piste de solutions.
• Si le serveur est bien démarré :
Démarrer l’application dans un navigateur :
http://localhost:8000/ (probablement).
En cas de problème, voyez le paragraphe vert suivant : pistes de solutions.
• On aboutit à la page d’accueil suivante :
Laravel – P1 – page 24/35
Pistes de solutions :
Principe general
• Regardez les messages d’erreur en ligne de commandes.
• Faites ce qui est demandé.
• Cherchez sur google des pistes de solution.
laravel/dusk
• Installer laravel/dusk
>composer require --dev laravel/dusk
>composer require --dev laravel/dusk:"^4.0"
• https://laravel.com/docs/8.x/dusk#introduction
• https://github.com/laravel/dusk/issues/631
mise à jour du framework dans composer.json
• Dans le fichier composer.json, on peut adapter la version du framework laravel :
• "laravel/framework": "^7.0",
• "laravel/framework": "^6.2",
composer update
• En cas d’erreur, il faudra peut-être mettre à jour le php.
• Sur MAC :
brew install php@7.3 brew link php@7.3
• Sur PC : verifier sa version avec WAMP
• https://stackoverflow.com/questions/46058457/cant-install-laravel-installer-via-composer
500 : Server Error
• L’application cliente ne marche pas.
• Quelques pistes :
>php artisan key:generate
>php artisan cache:clear
>php artisan config:clear
− cache:clear et config :clear permettent de vider les caches.
Laravel – P1 – page 25/35
Utilisation de l’application
Méthode
• Suivre tout le chapitre pas à pas et faire ce qui est demandé.
Menu Register : création d’un utilisateur
Création de l’utilisateur John Doe (référence : ici)
− Le mot de passe doit avoir au moins 8 caractères. Exemple (facile à retenir) : laravelmdp
Problème de BD : Connection Refused
• Application http://127.0.0.1:8000/, menu Register : route : http://127.0.0.1:8000/register
• On saisit le formulaire : connection refused.
• Solution : Le serveur de BD ne tourne pas ! Il faut le démarrer avec Wamp ou Mamp.
Laravel – P1 – page 26/35
Problème de BD :
• Application http://127.0.0.1:8000/, menu Register : route : http://127.0.0.1:8000/register
• On saisit le formulaire :
erreur dans le fichier vendor/laravel/framework/src/Illuminate/Database/Connection.php
• Solution : La BD n’existe pas : dans le fichier « .env », il faut choisir un nom pour la BD, vérifier que le username de la BD est bon ainsi que son passaword (root, vide sur PC, root, root sur MAC). Il faut ensuite créer un client mysql : create database laraveltodo ;
• Fichier .env sur MAC :
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306
DB_DATABASE=laraveltodo DB_USERNAME=root
DB_PASSWORD=root
• Création de la BD dans un client mysql :
mysql>create database laraveltodo;
− From MySQL 8.0, utf8mb4 is the default character set.
On peut aussi écrire : create database laraveltodo CHARACTER SET = utf8mb4 COLLATE = utf8mb4_ general_ci;
• Quand on met à jour le fichier .env, mieux vaut relancer le serveur puis l’application.
>php artisan serve
Laravel – P1 – page 27/35
Problème de BD : les tables n’existent pas.
• Application http://127.0.0.1:8000/, menu Register : route : http://127.0.0.1:8000/register
• On saisit le formulaire : la table users n’existe pas.
• On a un message qui propose de faire un « php artisan migrate » ou de passer par un bouton qui va le faire pour nous.
• Une fois le migrate fait, toutes les tables de la BD sont créées. On peut les regarder en faisant un « show tables » en console mysql.
Problème fonctionnel : le mot de passe doit avoir au moins 8 caractères
• Application http://127.0.0.1:8000/, menu Register : route : http://127.0.0.1:8000/register
• On saisit le formulaire : ça fonctionne. On crée un utilisateur John Doe et un utilisateur Fred.
• On peut mettre les adresse mail qu’on veut. Si on met une adresse mail fonctionnelle, on recevra des mails de l’application (c’est vite lassant !).
• Le mot de passe doit avoir au moins 8 caractères : exemple : laravelmdp
• On peut regarder l’utilisateur saisi dans la BD en console MySQL :
mysql>desc laraveltodo.users ;
mysql>select id, name, email, password from laraveltodo.users;
Laravel – P1 – page 28/35 Création de tâches par John Doe
• On crée 5 tâches pour John Doe. On les appelles td jd 1, 2… 5.
• Des notifications apparaissent.
• On peut éditer les todos et les modifier.
• On peut cliquer sur done : la todo est faite.
• On peut supprimer une todo. On supprime la 5 et on la recrée. On voit que son « # » à changer : c’est un #6. Le # correspond à l’id de la todo dans la BD.
• On peut jouer avec les 3 boutons principaux : voir les todos…
• On vérifie la présence des todos dans la BD :
mysql>use laraveltodo ; mysql>show tables ;
mysql>desc laraveltodo.todos ;
mysql>select id, name, done, creator_id from todos;
Création de nouveaux utilisateurs
• On crée 2 nouveaux utilisateur : Fred et Toto ( @gmail, mdp idem).
• On vérifie leur présence dans la BD :
mysql>select id, name, email, password from laraveltodo.users;
• On crée 2 tâches pour Fred : td f1 et td f2.
Laravel – P1 – page 29/35 Affectation d’une tâche de John Doe à Fred
• On se connecte chez John Doe.
• On affecte la tâche 1 à Fred.
• ERREUR !!!
Il faut paramétrer les fichier « .env » et « config / mail.php »
Fichier config / mail.php
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), 'name' => env('MAIL_FROM_NAME', 'Example'),
],
devient :
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'laravelbl@gmail.com'), 'name' => env('MAIL_FROM_NAME', 'laravelbl'),
],
.env
MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
devient :
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com MAIL_PORT=587
MAIL_USERNAME=laravelbl@gmail.com MAIL_PASSWORD="votre password"
MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
Laravel – P1 – page 30/35
Prise en compte par le serveur
• On arrête le serveur
• php artisan config:cache : ça permet de vider le cache de config et de s’assurer qu’on prend bien en compte les nouveaux fichiers de config.
• php artisan serv
php artisan config:cache php artisan serv
On relance l’application
• On relance l’application http://127.0.0.1:8000/
• On se connecte chez John Doe.
• On affecte la tâche 1 à Fred.
• Soit ça marche …
• Soit :
Laravel – P1 – page 31/35
Solution à ce problème : accrochez-vous !
• On a un problème d’authentification qui vient en réalité de google.
• On a créé un compte gmail qu’on à utilisé pour les paramètres MAIL du .env. J’ai appelé le mien « laravelbl@gmail.com »
• Ce compte doit être sécurisé pour fonctionner :
https://www.semicolonworld.com/question/50449/expected-response-code-250-but-got-code-ldquo- 535-rdquo-with-message-535-5-7-8-username-and-password-not-accepted
• Enable the 2-step verification to google HERE
• Create App Password to be use by your system HERE
• Cette deuxième étape produit un mot de passe spécial de 16 caractères qu’on va mettre dans le MAIL_PASSWORD du fichier .env :
MAIL_PASSWORD="abcdefghijklmnop"
Laravel – P1 – page 32/35
On relance l’application
• On redémarre le serveur en vidant le cache
php artisan config:cache php artisan serv
• On relance l’application http://127.0.0.1:8000/
• On se connecte chez John Doe.
• On affecte la tâche 1 à Fred.
• Ca marche …
• On ouvre une application dans un autre navigateur et on connecte Fred.
On voit que Fred a une notification : John Doe lui a affecté une tâche.
• On affecte la tâche 1 de Fred à John Doe.
• On va dans l’application de John Doe. On clique sur « voir toutes les todos » ou « voir toutes les todos ouvertes » : la notification apparaît du fait de la mise à jour de la page. On peut la regarder : Fred a affecté une tâche à John.
Laravel – P1 – page 33/35
Signification des boutons
• Toutes les todos ouvertes = les todos qui me sont affectées et qui ne sont pas finies.
• Toutes les todos = toutes les todos que j’ai créées et celles qui m’ont été affectées.
• Toutes les todos terminées = toutes les todos que j’ai finies.
• Toutes les todos créées par moi = toutes les todos que j’ai créées.
Remarques fonctionnelles
• 3 boutons qui alternent pour gérer 4 cas : c’est très compliqué !
• On ne devrait pas pouvoir effacer ou éditer une todo qu’on nous a affecté.
• Quand un todo est faite, on ne devrait plus pouvoir l’affecter ni la changer.
Laravel – P1 – page 34/35
Les routes
• Toutes les todos : http://127.0.0.1:8000/todos
• Les todos à faire : http://127.0.0.1:8000/todos/undone
• Les todos terminées : http://127.0.0.1:8000/todos/done
• Les todos créées par l’utilisateur : http://127.0.0.1:8000/todos/createdbyme
• Ajouter une todo : http://127.0.0.1:8000/todos/create
• Edition d’une todo : http://127.0.0.1:8000/todos/2/edit : avec le n° de la todo
• Affectation d’une todo : http://127.0.0.1:8000/todos/4/affectedto/2 : affecter la todo n°4 à l’utilisateur 2. Ne marche que si l’utilisateur est connecté.
Laravel – P1 – page 35/35
Bilan des commandes
Commandes :
>composer update
>php artisan config:clear
>php artisan serve
mysql>create database laraveltodo;
>php artisan migrate
Fichier manipulés :
• .env
• Config/mail.php Documentation :
Migration
• On s’est servi de l’outil migration pour générer les tables de notre application.
• https://laravel.com/docs/8.x/migrations
Erreur au retour !
• En relançant son application plus tard, on peut avoir l’erreur suivante :
storage/framework/sessions... failed to open stream: No such file or directory
• Solution : vider le dossier bootstrap/cache
• Méthode pour résoudre le problème : googler l’intitulé de l’erreur.