Validacion de formularios en php usando objetos
November 16th, 2009
Ahora vamos a hablar sobre el problema de validar formularios, seguramente ya habras hecho algun formulario en php y te haras dado cuenta que en ocaciones es necesario validar los datos que el usuario introduce, por ejemplo lo comun seria que un campo de texto de un formulario destinado a escribir un numero telefonico contega solamente numeros, una cierta cantidad de caracteres y tal vez podria contener guiones. Tal vez habras notado que puedes escribir toda clase de cosas en un formulario y enviar esos datos extraños a un script php para procesarlos, inclusive puedes enviar consultas sql o instrucciones de php, es ahi que por cuestiones de fiabilidad de los datos y seguridad del sistema es necesario la validacion de los datos, antes de cualquier otra accion como su procesamiento o almacenamiento en una base de datos.
Esta perfecto pensaras, lo unico que hay que hacer es validar los formularios y listo!!, resulta que surge otro problema, supon que en el lugar donde trabajas te han pedido validar los formularios del sitio de la empresa, lo que no te dijeron es que el sitio de la empresa tiene mas de 50 formularios y cada formulario tiene alrededor de entre 15 y 20 campos, validar lo anterior es una tarea enorme.
Y el enfoque para resolver este problema es la programacion orientada a objetos, lo cual me permitira reutilizar mucho del codigo que escriba y ahorrarme mucho tiempo.
La idea a de esto es crear una serie de clases que me sirvan para validar los distintos campos de un formulario, por ejemplo una clase para validar una campo telefonico, una clase para validar un campo descripcion, otra clase para validar un campo reservado para un nombre etc, y una clase especial que nos servira para manejar las demas clases.
La clase control sera capaz de darme la siguiente informacion:
- Podra decir si se genero o no un error en el proceso de validacion.
- Podra devolverme un error si es que lo hubo de un campo en especifico.
- Podra devolverme todos los errores generados.
Luego vendran las clases correspondientes para validar los distintos campos, estas clases heredaran de una clase abstracta, el unico objetivo de esto es que todo objeto validador contenga un metodo validar impresindible para el proceso de validacion de formularios, y que tenga a disponibilidad una serie de metodos basicos para validar campos.
¿Que es el polimorfismo?
November 16th, 2009
La etimologia de la palabra polimorfismo hace referencia a “muchas formas”, tal vez de a primera vista la palabra polimorfismo parezca ser un concepto dificil de enteder y tal vez hasta podria asustar a alguien, pero en realidad es un concepto sencillo. Pongamos un ejemplo para familiarizarnos mas con esta palabrota.
Tomemos a los humanos por ejemplo los humanos provenimos biologicamente de una jerarquia superior que son los mamiferos, los mamiferos duermen y nos han heredado la capacidad de dormir, asi que todos los humanos dormimos. Todos los humanos realizamos una accion comun que es dormir… pero existen humanos que duermen de diferentes formas, por ejemplo supongamos que tu duermes de lado, pero tu mama tambien duerme y tal vez duerme con la cara hacia arriba, otras personas duermen en posicion fetal, algunos duermen abrazando la almohada, en fin. La idea de esto es que todos los humanos dormimos pero lo hacemos de formas diferentes.
Lo mismo sucede con los objetos, es posible que la herencia y el polimorfismo sean la base de la programacion orientada a objetos. Veamos el siguiente inconveniente que surge al implementar un sistema de tienda virtual.
Supon que tienes una serie de objetos que represetan los articulos de la tienda, todos estos objetos deben de poder dar su descripcion por ejemplo nombre,precio..etc pero resulta que tienen caracteristicas diferentes y desplegar la descripcion para una television es diferente que para un paquete de frijoles o cualquier cosa que se te ocurra.
Una solucion podria ser la siguiente: meter todos los objetos articulo en un array, recorrer el array y escribir la descripcion del objeto segun la clase de la que provenga, utilizando una serie de if´s
1 2 3 4 5 6 7 8 9 10 11 12 13 | //productos es un array que contiene a los articulos for ( $i=0;$i<sizeof ($productos);$i++ ){ if ( $productos[$i] instanceof television ){ //desplegar la descripcion de la tele }else if ( $productos[$i] instanceof frijoles ){ //desplegar la descripcion para frijoles . . . }else if ( $productos[$i] instanceof claseN ){ // hay tantos if´s como clases de productos tengas :S } } |
Arboles binarios de busqueda en php usando objetos
November 7th, 2009
ahora tomaremos el tema de los arboles binarios de busqueda, no abarcaremos la teoria alrededor de los arboles, hablare sobre su implementacion en php usando objetos.
Sera solo un boceto y la idea es mostrar u orientar al lector sobre el uso de esta estructura en un lenguaje como php.
Haremos uso de dos clases: la clase nodo y la clase arbol, la clase nodo servira para definir la estructura de los nodos del arbol, en la clase arbol se implementaran los metodos basicos para trabajar con un arbol binario de busqueda, se abreviara arbol binario de busqueda como ABB.
Sabemos que en un arbol binario cada uno de los nodos del arbol tiene 2 hijos, de ahi viene la palabra binario, entonces la clase nodo tendra 2 campos el hijo izquierdo y el hijo derecho, ambos campos seran referencias a otro objetos del mismo tipo nodo, ya que en php no se tiene apuntadores como en el lenguaje C, entonces los apuntadores a direcciones de memoria ahora los cambiaremos por variables que guardan objetos.
La clase nodo contara con un tercer campo llamdo info, que almacenara el valor del nodo, en este ejemplo trataremos al campo info como un entero, pero para una implementacion mas robusta de un arbol, el campo info puede ser cualquier otra cosa, un float, un array, un objeto o inclusive otro arbol.
listas enlazadas en php usando poo (2)
November 2nd, 2009
En la primera parte de este tutorial revisamos aspectos basicos de las listas, en caso de que no hubieras trabajado con listas antes. Si quieres revisar la teoria (muy general) sobre listas dale click aqui
Implementar una lista enlazada en php
Como ya sabemos una lista se compone de nodos, hay un nodo especial que indica el inicio de la lista, y uno de los nodos de la lista en su campo enlace apunta al vacio esto indica el final de la lista, en php representaremos el vacio por la constante NULL, los nodos y la lista seran objetos
listas enlazadas en php usando poo (1)
November 2nd, 2009
En este documento abarcaremos la creacion de listas enlazadas utilizando programacion orientada a objetos, un ejercicio tipico en la programacion en c ahora emulado en php, revisaremos la teoria alrededor de las su aplicacion en php.
El Documento se divide en 2 partes teoria y aplicacion. En esta primera parte se habla sobre la teoria si quieres ir a la segunda parte y ver la implementacion de las listas en php dale click aqui
Teoria de las listas enlazadas simples
Solo quiero aclarar que el objetivo de este documento es principalmente poner en practica la oop(object oriented programing) en php, Seguramente haya mil formas mas de implementar listas, mas eficientes y elegantes, por ahora el proposito es solo practica.
Aquellas personas que hayan programado en c seguramente ya sabran de que van las listas enlazadas y no es necesario que leas esto.