desarrollo agil con php

Desarrollo Web Ágil Con ORM Propel Y Plantillas Smarty

Encuentra en el sitio

Últimos Artículos

El usar PHP en el desarrollo web, brinda una potente ayuda. En la actualidad podemos encontrar distintos FrameWorks. Esta vez quiero compartir uno en particular que he escuchado bastante donde trabajo,  Propel. Este ORM brinda una serie de características bastantes llamativas para ser usado en un desarrollo web ágil.

  • Smarty  – Es un motor de plantillas para PHP, lo cual facilita la separación entre la presentación (HTML / CSS) y la lógica de la aplicación. Esto implica que el código PHP es la lógica de aplicación, y está separada de la presentación.
  • ORM Propel – Es de código abierto para PHP5. Permite acceder a una base de datos usando un conjunto de objetos, proporcionando una API sencilla para almacenar y recuperar los datos.

Para que el tema quede mejor explicado, se dividirá en dos partes, esta es la primera parte, la cual se centrará en la explicación de cómo instalar las dos bibliotecas y usarlas en el proyecto PHP, cómo generar las clases de Propel para trabajar con una base de datos MySQL, configurar e inicializar Propel para su página web y, por último, mostrar datos de la base de datos utilizando la libreria de Smarty.

1. Como Instalar ORM Propel

El primer paso que tenemos que hacer es descargar e instalar la última versión de Propel. Para descargar la última versión de Propel ORM puede acceder a la página de descargas del proyecto y elegir cualquiera de las opciones que se adapte mejor a tu desarrollo.

Para usar el ORM Propel, no es necesario ejecutar algún instalador, sólo tienes que descomprimir el contenido del archivo en una ubicación. Antes de poder ejecutar el ORM Propel generador tendrás que:

  • Descargar la biblioteca Phing que es utilizado por Propel.
  • Después de descargar Phing, asegúrese de que el archivo phing.bat y también php.exe se puede usar en la variable de entorno. Para poder usar Phing, es necesario añadir las rutas de phing.bat y php.exe a las variables del sistema.

2. Generar El Archivo schema.xml De La Base De Datos MySQL

A los efectos de demostración de este artículo vamos a utilizar una base de datos MySQL muy simple con un solo nombre de tabla de la gente con la siguiente estructura:

El primer paso para usar Propel con una base de datos existente, es para generar el archivo schema.xml. Para eso tenemos que crear una carpeta en el disco donde almacenemos toda lo relacionado con Propel, como generar archivos (clases de om, archivos de configuración). Para mayor comodidad he creado mi carpeta PropelTest dentro de mi carpeta de propelgeneratorbin. Para generar el archivo schema.xml primero tenemos que crear un archivo build.properties, el cual se ha colocado dentro de la carpeta PropelTest que se ha creado. El archivo build.properties se ve así:

Una vez que se tenga el archivo build.properties, puedes ejecutar el comando propel-gen. Recuerda que este archivo se encuentra en la carpeta propelgeneratorbin, esto lo tenemos que tener en cuenta al momento de ejecutar el siguiente comando:

propel-gen PropelTest reverse

El primer argumento del comando es la carpeta en la que tenemos el archivo build.properties. Si la configuración de Propel y Phing se hace correctamente, el comando anterior debería funcionar correctamente.

Una vez que se ejecuta con éxito el comando anterior deberías ver un nuevo archivo en la carpeta PropelTest, de nombre schema.xml:

3. Generación de las clases del modelo

Una vez tenemos el archivo schema.xml, podemos generar las clases del modelo que vamos a utilizar en su proyecto para trabajar con la base de datos. Con el fin de generar las clases que necesitamos para ejecutar el siguiente comando:

propel-gen PropelTest om

Si el comando se ha ejecutado con éxito, en la carpeta PropelTest debería ver una nueva carpeta llamada build, que también contiene una carpeta llamada classes. En la carpeta classes, debe encontrar otra carpeta que puedes usar en tu proyecto. El nombre de esta carpeta está dada por el valor propel.project en el archivo build.properties. En nuestro caso es nuevo PropelTest.

Por cada tabla en la base de datos, Propel crea 3 clases PHP:

1. Una clase del modelo (por ejemplo, personas), lo que representa una fila en la base de datos;
2. Una clase de pares (por ejemplo PeoplePeer), ofreciendo constantes estáticas y métodos principalmente para la compatibilidad con versiones anteriores de Propel;
3. Una clase de consulta (por ejemplo PeopleQuery), que se utiliza para operar en una tabla para recuperar y actualizar filas.

4. Generar El Archivo De Inicialización De Propel

Una vez que hemos generado las clases del modelo, se debe generar un archivo de inicialización para el Framework Propel. Con el fin de generar nuestro archivo de inicialización, es necesario crear un archivo XML llamado runtime-conf.xml, el cual debería contener lo siguiente:

De acuerdo con la documentación de Propel, el atributo id para el elemento de origen de datos debe tener el mismo valor que el atributo de nombre del elemento de la base de datos de archivo schema.xml.

Una vez que hayas creado el archivo runtime-conf.xml puede ejecutar el siguiente comando:

propel-gen PropelTest convert-conf

Después de ejecutar este comando, si no has recibido ningún error, debería ver en la carpeta build una nueva carpeta llamada conf. En la nueva carpeta que debe encontrar su archivo de inicialización que en mi caso tiene el nombre PropelTest-conf.php.

5. Usar Propel En El Desarrollo Web Con PHP

Para utilizar Propel en mi proyecto PHP he creado dos carpetas adicionales en mi proyecto:

1. model – carpeta en la que he copiado el contenido de la carpeta de compilación. Si decides hacer lo mismo, en la carpeta model tendrás las clases y carpeta conf con su contenido.
2. propel – carpeta en la que he copiado el contenido de la carpeta runtimelib de la instalación de Propel.

El siguiente paso es la creación de un script de configuración para Propel, en el cual se incluyen todos los scripts PHP necesarios para acceder a la base de datos.

El script de instalación es muy simple y luce así:

6. Insertar, Actualizar Y Eliminar Registros En La Base De Datos Con Propel

Una vez generado el modelo de clases, utilizándolas y la interacción con la base de datos es bastante simple.

Con el fin de mostrar cómo ingresar, actualizar y eliminar una entrada de la tabla de la gente de nuestra base de datos, que acabo de crear un simple script PHP que hace todas las operaciones antes mencionadas. El Script es sólo para fines de demostración, estoy seguro de que para sus proyectos que llegaremos a utilizar las consultas más complejas.

El Script de la demostración, es el siguiente:

Como se ha mencionado, esto es tan solo una parte 😉 En en próximo articulo, te mostrare como integrar las plantillas de Smarty.

Deja un comentario