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 ...

sábado, 7 de mayo de 2011

Leer un XML en PHP

Bien como sabemos como crear un xml valido ahora lo que nos falta es leerlo por medio de php , asi que usaramos la POO para dejarlo mas nitido .

El ejemplo consiste en leer un xml parecido al que creamos en el post anterio solo que lo haremos con una clase generica que lee cualquier xml y te lee los valores de las etiquetas , ojo no los atributos de las etiquetas.

Como es que funciona esto veamos la estructura del XML a leer.

Como vemos en la imagen es casi igual al que creamos y esta estructura es la usaremos para hacer unas cosas mas adelante .

Ahora veamos la clase generica que lee el xml

La funcion espera parametros un array con el nombre de todas las etiquetas que contiene el siguiente parametro que es el nodo padre luego el nombre del archivo en formato strign .

Primero verificamos si el archivo existe sino mostramos un error el cual diga q no se hallo , si existe se manda a llamar la funcion privada a la cual le mandamos un array el nodo padre un numero inicializado a 0 mas el nombre del archivo.

Luego ejecutamos la funcion simplexml para cargar el archivo esta ya viene con php y le pasamos el nombre del archivo luego con un if verficamos que sea un xml valido o bien formado si no es asi damos un mensaje de error sino abrimos un foreach con la variable de la carga del archivo indicando el nodo padre luego hacemos un for para recorrer todas las etiquetas que vienen en el arreglo y se lo asignamos a otro arreglo el cual lo retornaremos al final de la funcion .

Ahora veamos como sacamos los resultados de ese array y tambien como mandarle los parametros a la funcion.

Bien primero hacemos un require once con el archivo de la clase generica luego creamos los parametros que le vamos a enviar a la funcion tambien instanciamos la clase y llamamos al metodo y a ese metodo le igualamos el retorno de la funcion como sabemos que sera un array .

luego para sacar el resultado de la funcion lo llamamos como un array asociativo con el cual bastara llamarlo con el nombre de la etiqueta y traera el valor de la etiqueta , ojo no los atributos dentro de la etiqueta.


Y el resultado sera este con el cual solo basta crear tu xml ponerle los valores constantes que queres y usar esa clase generica y listo tu aplicacion sera mas limpia , bien algunos se preguntaran para que voy a leer un xml con valores mejor se los pongo de un solo al sistema como variables o constantes , bien como nosotros tenemos que aprender a ser limpios en nuestra aplicacion y separar por capas el sistema no es recomendable hacer eso mas adelante veremos una forma util y profesional de usar los xml . estate pendiente....

Descargar

comenten no sean bayuncos

martes, 3 de mayo de 2011

Escribir un XML en PHP

Bien luego de ver lo basico de PHP Orientado a Objetos veremos algo mas complicado y mas util para crear nuestras aplicaciones , algunos se preguntaran que es XML extensible Markup Language ó Lenguaje extensible de marcas) es un conjunto de reglas que sirven para definir etiquetas semánticas para organizar un documento. Además el XML es un metalenguaje que te permite diseñar tu propio lenguaje de etiquetas. A diferencia del un lenguaje de etiquetas normal (HTML), XML te permite definir tu propio lenguaje.

Ahora un poco menos ofensiva la definicion Viéndolo desde un punto de vista simple y sin meternos en definiciones muy técnicas. XML nos ayuda a tener nuestra información estructurada jerárquicamente por medio de etiquetas ó Tags que nosotros mismos crearemos.

Ahora, para crear un documento XML no necesitas nada mas que un Procesador de texto simple, Ej.: Bloc de Notas y al terminar el documento solo tienes que salvarlo con la extensión xml.

Para que nos sirve un documento XML pues para muchas cosas que se te puedan ocurrir en tu aplicacion desde almacenar informacion , hasta archivo de configuracion para tu sistema.

XML es una herramienta inmensa para usarla de muchas maneras pero primero tenemos que saber la estructura basico o por lo menos la estructura que ocupare que no sera nada complicado.

Si saben de html no les costara adaptarse al estandar de XML ya que sigue la misma logica de etiquetas abiertas y etiquetas cerradas y dentro de estas un valor .

Tenemos el gran beneficio de crear nuestras propias etiquetas pero siempre llevaran un orden jerarquico . Y tambien tenemos esta otra opcion para un XML donde se muestra la etiqueta con un atributo.

De esta forma lo evitaremos no es que este malo sino que no es lo que necesitamos aprender en este momento claro si tu aplicacion lo requiere va tener que ser asi , tambien los xml tienen tienen dos formas de crearlos uno bien formado y el otro un xml valido el que acabamos de hacer es un XML valido ya que no contiene un DTD que son las declaraciones de tipo de documento , esto es mas que definir un estilo de xml para que los demas que sigan tu DTD tengan que usar las etiquetas que tu declaraste y asi se tendran un estandar de desarrollo pero por el momento solo lo usaremos un XML valido , luego veremos mas adelante como esta ese vacil.

Luego de una breve introduccion al XML veremos la forma de crear uno en PHP crearemos una clase que nos cree uno a nuestra conveniencia .

XML a Crear
Como vemos en la imagen es muy sencillo el xml y facil de entender como va la estructura luego de identificar como lo vamos a crear hacemos una clase PHP y creando un metodo publico haremos todo el codigo para crearlo.

Clase PHP para crear XML
Primero declaramos que vamos a crear un documento xml como lo vemos en la primera linea , luego creamos el nodo padre que contendra todo la estructura.

Luego creamos el nodo hijo que contendra las etiquetas que creamos en las siguientes lineas , usamos la funcion create a element para crear una etiqueta luego con appendChidl para crear el valor dentro de esas etiquetas y asi sucesivamente con todas las etiquetas hijas.

Armando uno por nosotros mismos lo entenderemos mucho mejor luego de crear toda la estructura tenemos que asignarle un formato de salida y guardarlo con un nombre .

Luego que ya tenemos armado el codigo para crearlo solo basta con instanciar la clase y ejecutar el metodo.

Archivo PHP para ejecutar la clase
Ahora algunos se preguntaran porque lo tenemos que crear de esta manera si lo podemos escribir por nosotros mismos , pues si lo podemos hacer asi pero esto nos va servir mas adelante ya que sabiendo como crearlos desde php podemos hacer nuestro archivo de configuracion sin depender de una base de datos y de una manera limpia y profesional.

Descargar archivos

Comenten no sean bayuncos

domingo, 1 de mayo de 2011

Excepciones en PHP

Hoy veremos lo que son las excepciones en PHP esto no es mas que control de errores por parte del programador funciona casi igual que los demas lenguajes que implementan este tipo de errores.

PHP 5 tiene un modelo de excepciones similar al de otros lenguajes de programación. Una excepción puede ser lanzada thrown, y capturada ("catched") dentro de PHP. El codigo debe estar delimitado dentro de un bloque try, para facilitar el capturar las excepciones potenciales. Cada bloque try debe tener al menos un bloque catch. Múltiples bloques catch pueden ser usados para capturar diferentes clases de excepciones. En la ejecución normal (cuando no hay excepciones dentro de un bloque try, o cuando el bloque catch correspondiente a la clase de la excepcion lanzada no esta presente) continuará hasta el último bloque catch definido en la secuencia. Las excepciones pueden ser iniciadas o reiniciadas dentro de un bloque catch.

Cuando validamos el error lanzamos la excepcion para que la capture el bloque catch si nunca es lanzada nunca es llamado el bloque catch y continua a la siguiente linea , si cae mostamos en un mensaje la linea del mensaje y el mensaje del error .

Bien como vemos en la imagen sucedio el error y muestra el mensaje de una forma ordenada y clara como programadores tenemos que sabes que esta pasando en nuestra aplicacion aca en php pues no contamos con un logger de eventos pero si podemos capturar los errores cuando estamos en entorno de pruebas para identificarlos mas rapido.

Hasta ahora hemos visto lo basico sobre la POO en php hemos hecho clases metodos interfaces metodos getter y setter y otras cosas mas que nos serviran para otras cuestiones que vienen , asi que si algo no quedo claro es hora de las preguntas y las respuestas.

comenten no sean bayuncos ...