domingo, marzo 11, 2012

Creación de log de errores - Parte III(Patrones de Diseño)

"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

1. INTRODUCCION

En el post anterior habíamos terminado la clase de AccesoDB, en esta 3er parte del tutorial, completaremos la parte de acceso a base de datos usando el Patron DAO y la parte del funcionamiento de la aplicación mediante el Patron MVC.

Para lo cual es importante mencionar que los patrones de diseño son recomendaciones probadas y sirven como modelo para dar soluciones a problemas comunes en el desarrollo del software. Son consideraciones en la actualidad como buenas practicas en la ingeniería de software.

Como mencionamos en el primer parrafo, haremos uso de 2 patrones de diseño:

1.1 Patron DAO: Abstrate y encapsula todo el acceso a la fuente de datos , cuyas caracteristicas se describen a continuacion:
  • DAO administra las conexiones con la fuente de datos ,recupera y almacena informacion en la fuente de datos.
  • Independiente del mecanismo de almacenamiento persistente.
  • DAO actua como adaptador entre los componentes de negocio y la fuente de datos.
Los sistemas tienen la necesidad de persistir datos en algun momento , ya sea serializados , guardandolos en una base de datos relacional,etc . Para hacer esto , la aplicacion interactua con la base de datos . El 'como interactua ' NO debe ser asunto de la capa de logica de negocio de la aplicacion, ya que para eso esta la capa de persistencia , que es la encargada de interactuar con la base de datos. En base a esto se puede decir que DAO es un patron de diseño utilizado para la capa de persistencia.

Que sucederia si NO tenemos dividida la capa de logica de negocio de la capa de persistencia , y de un momento a otro el jefe del proyecto no comenta que se cambiara de motor de base de datos , lo primero que se nos viene en mente es lo cambios ah realizar en la capa de logica de negocio. Esto no ocurriria si hubieramos tenido por separado la capa de logica de negocio de la de persistencia ,habrido sido suficiente con modificar la capa de persistencia para que la aplicacion pudiera utilizar el nuevo motor de base de datos, sin tener que modificar la capa de logica de negocio.


1.2. Patron DAO: El sistema se divide en tres partes.
  • Modelo: Encapsula los datos y la funcionalidad de la aplicacion(logica que da solucion al problema)
  • Vista: Interfaz de Usuario para el ingreso y presentacion de datos generados por el modelo.
  • Controlador: Es el que controla el flujo de la aplicacion quien es el responsable de dar solucion a un problema;se comunica con el modelo y la vista.

2.- DESARROLLO

2.1. iniciar Aptana Studio 3.

2.2. Se trabajara con sesiones, por lo tanto crear dentro de la carpeta util, la clase Session.php



2.2. Construccion de la clase UsuarioDAO, utilizando el patron de diseño DAO. crear un carpeta dao ,y dentro agregar una clase llamada UsuarioDAO
2.3. Construccion del inicio de sesion por el usuario, para esta parte se utilizara el patron de diseño MVC.
2.4. Crearemos una carpeta model y dentro una clase llamada loginmodel.php
2.5. Crearemos una carpeta controller y dentro una clase llamada logincontroller.php
2.6. Crearemos una carpeta view y dentro una clase llamada ok.php y validar.php
2.7. Crearemos una pagina index.php , que invocara a la pagina validar.php
2.8. Finalmente la estructura del proyecto queda como se muestra en la figura

3.- EJECUCION

3.1. ingresar en la barra de direccion: (tener iniciado el servicio del wamp server)


http://localhost/proyectolog/pylog/view/validar.php

3.2. Ingresar usuario:hmendozap y clave : 123456



Si quieren prueben ingresando otro usuario o clave y se veran los mensajes de error




3.3. Si en la AccesoDB, cambiamos el valor de paremetro PASS(password) , veremos que en el archivo prueba.log, se registra la siguiente informacion.




Bueno espero este tutorial les sea de utilidad, y hasta la proxima :)....... Saludos.