slam4:php:phalcon:td3

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:php:phalcon:td3 [2015/02/09 12:40] – [1- Pré-requis] jcheronslam4:php:phalcon:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 5: Ligne 5:
 ===== -- Pré-requis  ===== ===== -- Pré-requis  =====
 <html><a href="/slam4/php/phalcon/td2"><button class="button" style="min-width:250px">Réalisation TD n°2</button></a><br> <html><a href="/slam4/php/phalcon/td2"><button class="button" style="min-width:250px">Réalisation TD n°2</button></a><br>
-<a href="/slam4/php/phalcon/models"><button class="button" style="min-width:250px">Lecture Modèles</button></a><br></html>+<a href="/slam4/php/phalcon/models"><button class="button" style="min-width:250px">Lecture Modèles</button></a><br> 
 +<a href="http://docs.phalconphp.com/fr/latest/reference/session.html" target="_new"><button class="button" style="min-width:250px">Phalcon <b>sessions</b></button></a><br></html> 
 + 
 ===== -- Cours/lecture ===== ===== -- Cours/lecture =====
  
Ligne 14: Ligne 17:
  
 ===== -- Application ===== ===== -- Application =====
 +==== -- Fichiers ====
  
-==== -- Modèle relationnel et modèle objet ====+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 : {{:slam4:php:phalcon:onlinemag.sql|}}
  
 +==== -- Contexte ====
  
-**Modèle relationnel :**+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).
  
-{{:slam4:ormbddschema.png?nolink|}}+{{:slam4:ormbddschema.png?|Schéma de la base de données ORM}}
  
-**Modèle Objet (diagramme de classes) correspondant :**+==== -- Création des classes métier ====
  
-{{:slam4:oomodel.png?nolink|}}+  * Générer l'ensemble des classes Métier en utilisant les outils dev-toolsGé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
  
  
-Nous allons modifier le modèle Objet pour le rendre compatible avec Hibernate et permettre le mapping, en ajoutant des membres qui serviront d'identifiants (habituellement inutiles dans le monde Objet) :+==== -- Fonctionnalités à implémenter ====
  
-{{:slam4:oomodelhibernate.png?nolink|}}+**Remarque utiliser [[http://phalcon-jquery.kobject.net/|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 ====
  
 +|< 100% >|
 +^**Modèles** | <html><span class="class">Categorie</span></html> |
 +^::: | <html><span class="class">Produit</span></html> |
 +^::: | <html><span class="class">Commande</span></html> |
 +^::: | <html><span class="class">Ligne</span></html> |
 +^**Contrôleur/actions** | <html><span class="file" style="font-size:16px">BaseController</span></html> |
 +^::: | <html><span class="value">String className</span></html>\\ membre de données stockant le model à utiliser (facultatif) |
 +^::: | <html><span class="method">indexAction(filter=NULL)</span></html>\\ Liste par défaut des instances de la classe **className** en utilisant le filtre **filter** |
 +^::: | <html><span class="method">showAction(id=NULL)</span></html>\\ Chargement depuis la DBB et affichage d'une instance de **className**, **id** est la clé primaire de l'instance à afficher |
 +^::: | <html><span class="method">updateAction(id=NULL)</span></html>\\ Met à jour l'instance postée dans la base de données, puis affiche un message |
 +^::: | <html><span class="method">deleteAction(id)</span></html>\\ Supprime l'instance dont l'**id** est passé en paramètre |
 +^::: | <html><span class="method">messageAction()</span></html>\\ Gère le message de mise à jour et affiche la vue |
 +^::: | <html><span class="method">formSearchAction()</span></html>\\ Affiche le formulaire de recherche de produit ou de catégorie  |
 +^**Contrôleur/actions** | <html><span class="file" style="font-size:16px">Panier</span></html> |
 +^::: | <html><span class="method">indexAction()</span></html>\\ Affiche le contenu du panier |
 +^::: | <html><span class="method">addAction(id,quantity=1)</span></html>\\ Ajoute au panier le produit dont l'id est passé en quantité **quantity** |
 +^::: | <html><span class="method">deleteAction(id)</span></html>\\ Supprime du panier le produit dont l'id est passé |
 +^::: | <html><span class="method">clearAction</span></html>\\ Vide le panier |
 +^**Vues** | <html><span class="jsp" style="font-size:16px">views/index.volt</span></html> vue principale |
 +^::: | <html><span class="jsp" style="font-size:14px">views/index/search.volt</span></html> Formulaire de recherche |
 +^::: | <html><span class="jsp" style="font-size:14px">views/produit/index.volt</span></html> Affiche la liste des produits |
 +^::: | <html><span class="jsp">views/produit/show.volt</span></html> Affiche un produit |
 +^::: | <html><span class="jsp" style="font-size:14px">views/panier/index.volt</span></html> Affiche le contenu du panier |
 +^::: | <html><span class="jsp">views/panier/message.volt</span></html> Affiche un message suite à la mise à jour du panier |
  • slam4/php/phalcon/td3.1423482055.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)