TD n°3 - Modèles
Institut Universitaire de Technologie
Département Informatique - Campus III Ifs
Janvier-Février 2015
-- Pré-requis
-- Cours/lecture
Créer un projet test (à partir des outils en ligne de commande) :
- Lire la section relative aux Modèles
Au cours de la lecture, mettez en oeuvre les exemples exposés dans le projet de test créé
-- Application
-- Fichiers
Télécharger le script de la base de données, et exécutez le sur votre serveur Mysql :
- Script de création de la base de données : onlinemag.sql
-- Contexte
Nous allons travailler à partir d'un cas simple, et assez couramment utilisé :
- Un SI composé de produits, classés en catégories (1 CIF).
- Des commandes de produits effectuées, dont le détail est stocké dans des lignes (1 CIM).
-- Création des classes métier
- Générer l'ensemble des classes Métier en utilisant les outils dev-tools. Générer les classes avec getters et setters.
- Mettre en place les relations au niveau des classes
- Créer un contrôleur de Test permettant de vérifier la cohérence des classes sur les opérations CRUD
-- Fonctionnalités à implémenter
Remarque : utiliser phalcon-jquery, en particulier pour fluidifier la navigation avec ajax
- Afficher les catégories (éventuel filtrage)
- Afficher les produits dans une catégorie sélectionnée (éventuel filtrage)
- Rechercher un produit (par libellé de catégorie ou de produit)
- Sélectionner un produit et l'ajouter à son panier, définir la quantité
- Visualiser le contenu du panier
- Supprimer un produit du panier
- Vider le panier
- Valider le panier et passer commande
- Rectifier/Annuler une commande si elle n'est pas passée depuis plus de 30 minutes
-- Structure technique
Modèles | Categorie |
---|---|
Produit | |
Commande | |
Ligne | |
Contrôleur/actions | BaseController |
String className membre de données stockant le model à utiliser (facultatif) |
|
indexAction(filter=NULL) Liste par défaut des instances de la classe className en utilisant le filtre filter |
|
showAction(id=NULL) Chargement depuis la DBB et affichage d'une instance de className, id est la clé primaire de l'instance à afficher |
|
updateAction(id=NULL) Met à jour l'instance postée dans la base de données, puis affiche un message |
|
deleteAction(id) Supprime l'instance dont l'id est passé en paramètre |
|
messageAction() Gère le message de mise à jour et affiche la vue |
|
formSearchAction() Affiche le formulaire de recherche de produit ou de catégorie |
|
Contrôleur/actions | Panier |
indexAction() Affiche le contenu du panier |
|
addAction(id,quantity=1) Ajoute au panier le produit dont l'id est passé en quantité quantity |
|
deleteAction(id) Supprime du panier le produit dont l'id est passé |
|
clearAction Vide le panier |
|
Vues | views/index.volt vue principale |
views/index/search.volt Formulaire de recherche | |
views/produit/index.volt Affiche la liste des produits | |
views/produit/show.volt Affiche un produit | |
views/panier/index.volt Affiche le contenu du panier | |
views/panier/message.volt Affiche un message suite à la mise à jour du panier |