|
|
(2 revisiones intermedias por el mismo usuario no mostrado) |
Línea 1: |
Línea 1: |
− | {{:Usuario:ManuelRomero/php/smarty/tienda1/nav}} | + | {{:Usuario:ManuelRomero/ProgramacionWeb/Distancia2018/practicaTienda/nav}} |
− | | + | {{MRM_Objetivos| |
− | __NOTOC__
| + | *Se va a mostrar los difentes requisitos de la práctica. |
− | ===Enunciado original===
| + | *Cada requisito tiene un enlace para ver la ejecución de una posible solución. |
− | *Para el enunciado visitamos la página donde se especifican los requisitos | + | *Es obligatorio usar PDO e implementar las clases que se especifican. |
− | | + | *Hay que usar smarty para las plantillas. |
− | http://es.wikieducator.org/Usuario:ManuelRomero/php/ejemploTienda
| + | *Hay que entregar cada uno de los proyectos, es decir, esta práctica son 10 proyectos independinetes y crecientes. |
− | ===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
| + | |
− | | + | |
− | <source lang=php>
| + | |
− | validarCliente($usuario,$password)
| + | |
− | obtenerProducto($codigo)
| + | |
− | obtenerProductos ()
| + | |
− | </source>
| + | |
− | | + | |
− | ;Producto.php
| + | |
− | :Clase para interactuar con un prodcuto concreto
| + | |
− | ;CestaCompra.php
| + | |
− | :Acciones relacionadas con la cesta de la compra
| + | |
− | <source lang=php>
| + | |
− | nuevoArticulo()
| + | |
− | getProductos()
| + | |
− | getCoste()
| + | |
− | vaciar()
| + | |
− | </source>
| + | |
− | ====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.
| + | |
− | #Login ==> Nos identificaremos para acceder al sitio web
| + | |
− | #Porductos ==> Se visualizarán una lista de todos los productos
| + | |
− | #Logoff ==> Tendremos la opción de desconectarnos
| + | |
− | #Cesta ==> Aparecerá la posibilidad de ir incorporando nuevos elementos a la cesta
| + | |
− | #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.
| + | |