Usuario:ManuelRomero/NewPHP/B2T9/Smarty/practicaTienda

Enunciado original

 * Para el enunciado visitamos la página donde se especifican los requisitos

http://es.wikieducator.org/Usuario:ManuelRomero/php/ejemploTienda

Especificaciones nuevas

 * En este caso se trata de cumplir una serie de especifiaciones nuevas
 * Vamos a separar la lógica del negocio de la presentación
 * por otro lado vamos a crear clases para la programación más estructurada y encapsulada
 * El resultado será un proyecto con muchos mas ficheros, pero mucho más organizado y especializado
 * Las especificaciones no funcionales de este ejercicio son:

CLASES

 * BD.php
 * Clase con los métodos necesarios para acceder/consultar/validar en la base de datos. Por ejemplo


 * Producto.php
 * Clase para interactuar con un prodcuto concreto


 * CestaCompra.php
 * Acciones relacionadas con la cesta de la compra

PLANTILLAS

 * Es la parte de interfaz de cliente
 * Normalmente cada parte php tendrá su plantilla, de modo que los ficheros php solo tienen código de control y de acceso y gestión de la base de datos
 * login.ptl
 * productos.tpl (listaProductos.tpl y productosCesta.tpl)
 * cesta.tpl

NEGOCIO o LÓGICA

 * 5 plantillas tendremos 5 ficheros php, aunque esto no tendría que ser necesariamente así
 * cesta.php
 * login.php
 * logoff.php
 * pagar.php
 * productos.php
 * La funcionalidad queda descrita en el enunciado

Forma de proceder

 * Vamos a hacer este ejercicio de forma incremental, realizando cada parte con el fin de ir asimilando bien los conceptos de plantillas y la separación de negocio o lógicay presentación.
 * 1) Login ==> Nos identificaremos para acceder al sitio web
 * 2) Porductos ==> Se visualizarán una lista de todos los productos
 * 3) Logoff ==> Tendremos la opción de desconectarnos
 * 4) Cesta ==> Aparecerá la posibilidad de ir incorporando nuevos elementos a la cesta
 * 5) Opciones de Cesta ==> Podremos o pagar y terminar la app o bien vaciar la cesta de la compra
 * Cada una de estas cinco acciones deben de constituir una aplicación.