domingo, 29 de mayo de 2011

Creacion de Un Login POO-PHP Parte I


Bien señores despues de un largo tiempo de postear nada jeee les he aplicado lo que aprendimos en php orientado a objetos en si es un login puramente hecho con programacion orientada a objetos y unos detallitos mas que le pueden servir a cualquiera.

Bien en la aplicacion he tratado de dividir el proyecto en muchas capas para que una sea independiente de la otra lo cual facilita el desarrollo en equipo .

Buscando en Internet encontre el desarrollo en 3 capas que las explicare claro y corto cuales son

Capa de presentacion : Como decimos cuando trabajamos en entorno de aplicacion de escritorio es la GUI del proyecto que necesitara la ayuda de la capa de persistencia de datos.

Capa de Persistencia : Esta parte es donde nosotros persistimos nuestros datos de una manera independiente lo cual nos ayudara a recuperar informacion con las acciones basicas guardar modificar eliminar recuperar practicamente un CRUD .

Capa de Negocio : Aca es donde en realidad esta el problema y la Logica de la Aplicacion .

Bien ya entendido esto tambien se pueden hacer referencia al modelo de diseño MVC Model View Controler , que es casi parecido en la logica pero no lo es jeee.

Bien que es lo queremos crear un login multiIdioma que tenga una capa de presentacion y una capa de persistencia de datos el cual tambien contendra a la capa de negocio de la aplicacion.

Todo esto usando programacion orientada objetos en php Primero es lo primero tenemos que crear unas clases genericas que no importen a que base de datos "Ojo base de datos no Gestor de base de datos" nos conectemos sino que solo tengamos que cambiar una 3 lineas para crear otra aplicacion . " y asi reutilizar codigo y pensar a futuro".

Primero tenemos que encontrar una solucion al eterno problema del require en si el problema se da cuando las clases ya no estan en modo principal sino alojadas dentro de carpetas , en otros lenguajes solo basta un import en caso de java y visual studio , aca en php es un problema , pero bien la solucion es tan simple que solo debemos de hacer un archivo php en el cual definamos constantes concatenado con la variable HOME que nos dira el nombre del servidor mas la ruta donde esta el proyecto , esto nos servira cuando nuestro proyecto ya este en pruebas que no se pierdan las referencias entre clases.

Definimos el nombre de la constante mas el valor que es la ruta del servidor mas donde esta el archivo alojado en nuestro proyecto , ya con este archivo solo basta hacer un require de el mismo y crear un require mas el nombre de la constante y solucionado.

Ya explicado estramos en materia bien nuestra clase conexion se comprendera en este diagrama

Algunos se preguntaran porque de un XML porque no lo hacemos directo bien cuando quieras realizar tu configuracion a la hora de instalar tu sistema tendran que insertarle esos valores en un formulario asi como lo vemos a la hora de instalar joomla o cualquier CMS , solo bastara en crear ese xml por medio de PHP que ya sabemos como .

Primero veamos la Estructura del XML :

La estructura es basica no hay donde perderse los datos basicos para conectar la base de datos que son el host o servidor el usuario y la contraseña mas el nombre de la base de datos .

Ahora veamos el archivo php que lo leera :

Esta clase se encarga de traer los datos del xml con una clase generica que lo lee y nos devuelve los datos de todo el xml .

Veamos el archivo php que almacena estos datos

Este archivo se encarga de nada mas que tomar esos valores y almacenarlos en variables que despues utilizaremos .

Este archivo tiene un construnctor en el cual se capturan las variables que vienen en la configuracion , luego tenemos metodos asesores para la extraccion de datos de esta clase ya que sus propiedades son privadas.

Esta es la clase donde conectaremos a la base con un constructor que manda a llamar un metodo que lee el archivo php anterior y extrae los datos por medio un getter .

Luego tenemos un metodo para conectar el cual es privado y se ayuda de los datos obtenidos en el metodo anterior , luego que ya realizamos la conexion creamos los metodos para ejecutar una SQL el cual solo necesitara la cadena y retornara en caso de ser de seleccion el resultado obtenido.

EL metodo de obtener fila es para recorrer lo que devolvio la consulta sql y asi solo con un simple while mostramos los resultados.

Ahora para poder usar esta clase hacemos lo que vemos en la imagen .

No posteare el archivo descargable todavia ya que lo pondre al final ya cuando haya explicado todo lo que hice mas adelante veremos como hacer una aplicacion multilenguaje y como hacer metodos usando esta clase conexion .

Comenten no sean bayuncos ...

3 comentarios:

  1. Apenas he utilizado unos minutos para ver el ejercicio...se ve interesante... sacaré tiempo el próximo fin de semana para prepararlo en un curso algo básico que estoy impartiendo... así que estaré molestando con observaciones y preguntas... Gracias por compartir

    ResponderEliminar
  2. Excelente esperamos tus observaciones y tus preguntas

    ResponderEliminar