Module M2105 - RT web dyna - TD/P 3

Démarrage des serveurs :
  • Démarrer Apache
  • Démarrer Mysql

Notions abordées

  • Mysql/phpmyadmin
  • Connexion à une base de données en php
  • Extraction de données et affichage dans une page Web
  • Mise à jour de données (Ajout/modification/suppression
  • Création de classes techniques

-- Base de données

Modèle physique

Le modèle physique de la base de données est le suivant :

Règle de gestion

  • Utilisateurs et projets :
    • Chaque projet est la propriété d'un utilisateur (Projet belongsTo → Utilisateur)
    • Un utilisateur peut être le propriétaire de plusieurs projets (Utilisateur hasMany → Projets)
  • Utilisateurs et Catégories :
    • Chaque utilisateur appartient à une categorie (Utilisateur belongsTo → Categorie)
    • Dans une catégorie, on peut avoir plusieurs Utilisateurs (Categorie hasMany → Utilisateurs)
  • Utilisateurs et Droits :
    • Chaque Utilisateur dispose de Droits (Utilisateur hasAndBelongsToMany → Droits)
    • Chaque Droit peut-être affecté à plusieurs Utilisateurs

-- Création de la base de données

  • Exécuter le script de création de la base de données projets téléchargé sur votre serveur Mysql, à partir de phpmyadmin (Menu Importer)

-- Exercices de base

-- Connexion

Créer une page de test réalisant la connexion à la base de données, et affichant après exécution l'état de la connexion (Échec ou réussite)

-- Affichage de données

Créer une page de test permettant d'afficher la liste des projets.

-- Ajout de données

Créer une page de test permettant de saisir un nouveau projet dans un formulaire, puis de sauvegarder ce projet dans la base de données après soumission du formulaire.

-- Suppression de données

Créer une page de test permettant de supprimer un projet dans la base de données, l'id du projet étant passé dans l'url.

-- Manipulations de données avec séparation des couches

-- Contraintes à respecter

Il s'agit maintenant de faire la même chose sur les utilisateurs que sur les projets, mais en respectant certaines contraintes, de façon à produire du code plus facilement maintenable :

  • Utiliser la classe DataBase pour l'accès à la base de données : database.php
  • Créer les classes métier dans le dossier classes
  • Les opérations entre le modèle Objet et la base de données doivent obligatoirement être implémentées dans la classe DbGateway (à créer), via des méthodes statiques
  • Le code permettant de générer l'affichage d'objet doit être implémenté dans la classe GUI (à créer), via des méthodes statiques

-- Liste des Utilisateurs

  1. Créer la classe métier Utilisateur, en faisant correspondre les membres de la classe aux champs de la table.

<?php
class Utilisateur {
	private $id;
	private $nom;
	private $prenom;
	private $age;
	private $adulte;
	private $dateInscription;
	private $idCategorie;
	
	public function getId() {
		return $this->id;
	}
	public function setId($id) {
		$this->id = $id;
		return $this;
	}
	public function getNom() {
		return $this->nom;
	}
	public function setNom($nom) {
		$this->nom = $nom;
		return $this;
	}
	public function getPrenom() {
		return $this->prenom;
	}
	public function setPrenom($prenom) {
		$this->prenom = $prenom;
		return $this;
	}
	public function getAge() {
		return $this->age;
	}
	public function setAge($age) {
		$this->age = $age;
		return $this;
	}
	public function getAdulte() {
		return $this->adulte;
	}
	public function setAdulte($adulte) {
		$this->adulte = $adulte;
		return $this;
	}
	public function getDateInscription() {
		return $this->dateInscription;
	}
	public function setDateInscription($dateInscription) {
		$this->dateInscription = $dateInscription;
		return $this;
	}
	public function getIdCategorie() {
		return $this->idCategorie;
	}
	public function setIdCategorie($idCategorie) {
		$this->idCategorie = $idCategorie;
		return $this;
	}
}

  1. Créer la méthode statique getUtilisateurs(Database $db) dans la classe DbGateway, retournant un tableau d'instances de la classe Utilisateur correspondant aux enregistrements de la table
  2. Créer la page listUtilisateurs.php utilisant la méthode getUtilisateurs et affichant la liste des utilisateurs.

-- Liste et suppression

  1. Créer la méthode statique deleteUtilisateur(Database $db,$id) dans la classe DbGateway, supprimant l'utilisateur de clé primaire $id
  2. Créer une page utilisant cette méthode pour supprimer l'utilisateur dont l'id est passé dans la requête (GET), et affichant le résultat de la suppression
  3. Ajouter un lien (image) pour la suppression dans la liste

-- Ajout

  1. Créer la méthode statique addUtilisateur(Database $db,$user) dans la classe DbGateway, ajoutant l'utilisateur $user
  2. Créer le formulaire de saisie d'un utilisateur
  3. Créer une page d'ajout d'utilisateur traitant la soumission du formulaire et réalisant l'ajout (à partir de la méthode addUtilisateur)

-- Modification

  1. Créer la méthode statique updateUtilisateur(Database $db,$user) dans la classe DbGateway, modifiant l'utilisateur $user
  2. Créer le formulaire affichant les informations de l'utilisateur dont l'id est passé dans la requête, par clic sur le bouton Modifier de la liste des utilisateurs
  3. Créer une page de modification d'utilisateur traitant la soumission du formulaire et réalisant la modification (à partir de la méthode updateUtilisateur)

-- Chargement des objets associés

  1. Modifier la liste pour qu'elle affiche le libellé de la catégorie de l'utilisateur, et le nombre de projets

php-rt/tp3-old.txt · Dernière modification: 2018/04/05 18:03 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0