Hace poco escribi un post en el que explicaba como realizar un sistema de logeo de usuarios usando ajax con jquery, y php para la lógica de servidor (php object generator para acceder a la base de datos). He recibido algún email pidiendome que explique más sobre pog (php object generator a partir de ahora), así que me decidí por escribir este post.

Según su página oficial, “php object generator es un generador de código php open source, que automáticamente genera objetos limpios y testeados para php4 y php5”. Básicamente lo que hace, es generarnos una clase para el acceso y guardado de datos en la base de datos, de forma que, este será más rápido, y lo tendremos todo un poco más organizado y limpio.

En el ejemplo, vamos a realizar un sistema de registro de usuarios (el tipico que un usuario tiene que rellenar), lo voy a hacer lo más simple posible, tendremos el campo login, contraseña (pass), email y edad. Necesitarás tener un servidor que pueda ejecutar php y una base de datos mysql para poder seguir el ejemplo.

A grandes rasgos, los requerimientos que nos ponemos son:

  • Cuando un usuario se registre, el login, contraseña y email son obligatorios.
  • Debemos comprobar que el usuario introducido no está ya dado de alta en nuestra base de datos.

Bueno, empecemos.

Paso 1: Generar el objeto con todos las atributos (campos de la bd)

Nos dirigimos a su página, y vamos rellenando todos los atributos que necesitaremos. Para este ejemplo, yo voy a seleccionar como typo varchar 255 para todos los campos. Debes tener en cuenta, que cuando generamos un objeto, pog nos agrega automáticamente el campo id (siempre será nombredelaclaseId) con lo cual no tendremos que ponerlo nosotros. Este siempre será un integer autonumérico. Bien, rellenamos los campos, pulsamos sobre submit, y despues tenemos un enlace para poder descargar los ficheros. El zip que nos descargamos contiene:

  • Directorio objects
  • Directorio plugins
  • Directorio setup
  • archivo configuration.php

Nos interesa el archivo configuration.php y el directorio objects. El directorio plugin es una nueva caracteristica de la version 3, todavía no he tenido tiempo de mirarmela. El directorio setup, es para crearnos las tablas de la bd, y poder gestionar sus datos, tampoco lo necesitamos, vamos a hacerlo nosotros a mano.
La estructura de mi directorio raiz web va a ser:

  • Css (directorio para las hojas de estilo)
  • includes (directorio para todos los archivos que necesite)
    • objects (directorio con todos los objetos generados por el pog)
    • archivo configuration.php

De esa forma, lo tendremos todo más organizado, tu puedes crear tu propia estructura, pero el código fuente que ponga aquí usará la que describo arriba.

Nota: En el directorio objects tenemos 3 archivos, el class.database, el class.pog_base y el correspondiente a la clase que vayamos a generar. Los dos primeros siempre se repiten, con lo cual, si generamos otra clase mas para el mismo proyecto solo necesitaremos el class.nombreclase.php, los demás, son idénticos.

Para finalizar con el primer paso, simplemente edita el archivo configuration.php y pon tu servidor, usuario, contraseña, y nombre de la base de datos (obviamente, la tienes que crear antes) para que las clases generadas con el pog puedan acceder a la bd correctamente.

NOTA: En los comentarios del principio de las clases generadas con pog, hay una url comentada, poniendo esa url en un navegador iremos a la página de generación del objeto con todas sus propiedades y tipos de datos ya rellenados, con lo que agregar un campo a un objeto es cosa de 5 segundos.

Paso 2: El formulario xhtml

 

  1. <form action="index.php" method="post"> <label for="login">Login</label> 
  2. <input id="login" name="login" type="text" /></form><label for="pass">Password</label>
  3.  
  4. <input id="pass" name="pass" type="passowrd" /><label for="email">Email</label>
  5.  
  6. <input id="email" name="email" type="text" /><label for="edad">Edad</label>
  7.  
  8. <input id="edad" name="edad" type="text" /> <input name="postback" type="hidden" value="ok" /><button>Enviar</button>

No hay mucho que comentar, un formulario de logeo simple. Para saber que un formulario ha sido enviado siempre uso un campo oculto (postback en este caso).

Paso 3: El codigo php

Bueno, allá vamos:


Creo que tambien es sencillo, aun así, para cualquier duda dejad un comentario. Lo unico que quiza sea un poco lioso las primeras veces es el método GetList. Este metodo acepta 4 parametros:

  • Un array bidimensional con los criterios de selección (en este caso, login = $_POST['login']
  • El campo por el cual ordenamos (opcional)
  • Si el valor devuelto debe ser ascendente o descendente (opcional tambien)
  • Si queremos limitar la cantidad de resultados devueltos (de nuevo opcional)

Puedes ver su documentacion para mas ejemplos, aunque solo tienes que tener en cuenta que en el array tienes que respetar el siguiente formato: Atributo, comparador, valor.

Concluyendo

Esto se trataba de una implementacion simple de un script que use objetos pog en un caso “real”. Obviamente, faltan muchas comprobaciones de seguridad y de validacion de datos que no se han hecho, y faltaría también mejorar la forma en la que se muestran los mensajes de error al usuario que tampoco se ha hecho, ya que la finalidad de este tutorial es crear una pequeña introduccion a pog, no crear un sistema de registro de usuarios completo. Espero que os haya servido.

Puedes descargar el código fuente desde aquí.