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:43] – [3.2- Modèle relationnel et modèle objet] jcheron | slam4:php:phalcon:td3 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
---|
===== -- 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 ===== |
| |
| |
===== -- Application ===== | ===== -- 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 : {{:slam4:php:phalcon:onlinemag.sql|}} |
| |
==== -- Contexte ==== | ==== -- Contexte ==== |
| |
{{:slam4:ormbddschema.png?|Schéma de la base de données ORM}} | {{:slam4:ormbddschema.png?|Schéma de la base de données ORM}} |
| |
| ==== -- 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 [[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 | |