Cours de Rémi JarjatCours de Rémi Jarjat
  • Liste des cours
  • Culture numérique
  • Git
    • Terminologie
    • Avant de commencer
    • Créer un dépôt (local)
    • Enregistrer des changements
    • Des branches
    • Mise en commun du travail
    • Annuler des changements
    • Réécrire l'historique
    • Des outils pour se simplifier Git
    • Exercices
    • Exemples pratiques
  • Linux
    • Installation
    • Historique
    • Rangement des fichiers
    • Les processus
    • Commandes de base
    • Commandes avancées
    • /linux/6-other-technologies.html
    • Exercices
    • Correction des exercices
  • PHP
    • Environnement de travail
    • Bases du PHP
    • Tests et boucles
    • Procédures et fonctions
    • Interagir avec l'utilisateur
    • La temporisation de sortie
    • PHP Doc et PSR
    • PHP Orienté objet
    • Héritage et objets
    • Factorisation
    • Manipuler la BdD avec PDO (PHP Data Object)
    • Architecture MVC
    • Webservices REST
    • Exercices - Bases
    • Exercices - Séparer en plusieurs fichiers
    • Exercices - POST et SESSION
    • Exercices - Panier et validation
    • Exercices - Objets
    • Exercices - BdD avec PDO
    • Projet - montage d'ordinateurs
    • Projet - Personnages de Jeux de Rôle
  • Symfony
    • Installer Symfony et son environnement de travail
    • Structure et utilisation d'un projet
    • Le routing
    • Les controllers
    • Twig
    • Les services et l'injection de dépendances
    • Doctrine et la BdD
    • Formulaires
    • Les traductions
    • Event listeners/subscribers
    • Connexion et sécurisation
    • Bundles
    • Easy Admin Bundle
    • API Platform
    • Pense-bêtes
    • Symfony au quotidien
    • Travailler avec Docker
    • Projet : annonces de SPA / éleveurs
    • Exercices
  • Javascript
    • Les bases du langage
    • Manipulation logique
    • Le DOM
    • JQuery
    • Ajax
    • Programmation orientée objet
    • Webpack
    • Outils utiles
    • Révisions
  • Serveur Lamp
  • Déploiement
    • Des outils et manières de faire
    • Déploiement par FTP
    • Wordpress
    • Intégrer Git dans le processus
    • GitHub Pages pour déployer facilement
    • Symfony et Angular
  • Docker
  • Intégration continue
  • Sécurité informatique

Exercices - BdD avec PDO

  • 26. Créer une base de données
    • Correction
  • 27. Formulaire de contact, en BdD
    • Correction
  • 28. Utiliser les données de la BdD
    • Pull Request
    • Correction
  • 29. MVC et namespaces (⚠️ difficile)
    • Correction
  • Révisions

Pré-requis :

  • avoir un environnement de travail (Wamp / Xampp / Mamp ou équivalent)
  • avoir des bases de PHP

Correction :

  • En vidéo, tout le long des exercices (après l'énoncé correspondant)
  • Dans le code, sur le repository dédié aux corrections sur GitHub.

26. Créer une base de données

  • Ouvrir PhpMyAdmin
  • Y créer une base de données exo_beanies
  • Créer des tables pour les objets
    • Contact (nommer la table contact)
    • Beanie (nommer la table beanie)
  • Créer un fichier de connexion à la BdD includes/config.inc.php et faire en sorte d'avoir une connexion fonctionnelle dans toutes vos pages.
  • Insérer des données dans la table beanie à l'aide de l'une des deux méthodes suivantes :
    • dans PhpMyAdmin, ajouter des données dans la table beanie (avec les valeurs de votre fichier variables.php par exemple)
    • écrire un script PHP includes/fixtures.php insérant les données

Correction

27. Formulaire de contact, en BdD

  • Modifier votre page de contact pour insérer les données du formulaire dans la table contact
    • N'insérer les données que si aucune erreur n'est remontée

Correction

28. Utiliser les données de la BdD

Choisissez l'une des deux méthodes suivantes pour remplir nos bonnets depuis la BdD :

  • Créer une classe BeanieFactory dans classes/Factory/BeanieFactory.php qui va avoir une méthode create()
    • ayant pour paramètre un tableau (une ligne récupérée dans la BdD)
    • renvoyant un objet Beanie contenant les données venues de la table
  • Utilisez le flag FETCH_CLASS de PDO pour remplir les objets à l'aide de la BdD
  • Modifier vos pages pour récupérer les données depuis la table beanie, plutôt qu'une variable
    • Adapter le code des différentes pages pour utiliser la BdD plutôt que le tableau (fixe), utilisé jusqu'à présent

Pull Request

  • Créez une Pull Request
  • Invitez quelqu'un.e sur votre projet
  • Faites vous inviter par cette personne également
  • Relisez le code et faites vos retours (vérifiez que le code valide bien les normes PSR-12 et PSR-4, par exemple)
  • Approuvez (ou non) sa PR
  • Une fois votre PR validée par un.e pair.e, vous pouvez la fusionner (merge)

Correction

29. MVC et namespaces (⚠️ difficile)

Notre site ne suit pas parfaitement le modèle MVC. Il nous faudrait améliorer ça et re-structurer un peu les fichiers et leur organisation. Ce que nous voulons faire :

  • Renommer le dossier class en src et y créer au moins 3 sous-dossiers : Model, View et Controller
  • Déplacer les vues (pages) dans View
  • Ranger les classes que vous aviez créées dans Model ou dans un autre dossier (par exemple, j'ai un dossier Service pour certaines classes)
  • Créer un objet Controller par page et y déplacer la logique (calculs PHP actuellement dans les pages)
  • Faire en sorte que le front controller (index.php) appelle le bon contrôleur en fonction de l'url

⚠️ Pensez bien à mettre à jour les namespaces de vos classes et tous les appels à ces classes.

Correction

Révisions

Pour réviser tous ces points et les travailler, vous pouvez vous entrainer avec ces exercices de révision.

Dernières mise à jour :
Prev
Exercices - Objets
Next
Projet - montage d'ordinateurs