Categorías: PHP

Desarrollo Web Ágil Con ORM Propel Y Plantillas Smarty

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:

Ver Código
CREATE TABLE `people` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `age` int(3) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ;

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í:

Ver Código
    propel.project = PropelTest

    # The Propel driver to use for generating SQL, etc.
    propel.database = mysql

    # This must be a PDO DSN
    propel.database.url = mysql:dbname=PropelTest
    propel.database.user = root
    # propel.database.password =

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:

Ver Código
    
    
    
    

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:

Ver Código
    
      
        
          
            
              mysql 
              
                mysql:host=localhost;dbname=PropelTest
                root
                
              
            
          
        
      

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í:

Ver Código
    

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:

Ver Codigo
    ID: ".$people->getId()."
Name: ".$people->getName()."
Age: ".$people->getAge()."

"; } // create a new record $me = new People(); $me->setName('Andrei'); $me->setAge(28); $me->save(); // save the record to the table PrintDetails($me, "Created:"); // update the entry $people = PeopleQuery::create()->findPK(2); // find the people record with the Primary Key 1 if($people != null) { PrintDetails($me, "Found:"); $people->setName('Andrei Croitoriu'); $people->save(); PrintDetails($people, "Updated found entry to:"); $people->delete(); print "Deleted the entry!"; } ?>

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

WP Dev JaGonzalez

Hijo, esposo y padre de un hermoso niño. Amante de los animales, la tecnología, informática y programación. Si tienes alguna duda, inquietud, comentario o deseas comunicarte directamente conmigo, puedes enviarme un correo electrónico a admin@jagonzalez.org

Compartir
Publicado por
WP Dev JaGonzalez

Entradas recientes

iPhone Hackeado: Qué Hacer para Proteger tu Dispositivo y Asegurar tu Seguridad

¿Has notado aplicaciones desconocidas o un drenaje inesperado de la batería? Estos podrían ser indicios…

2 semanas hace

Cómo Restablecer un iPhone a su Estado de Fábrica

Saber cómo Restablecer un iPhone a su Estado de Fábrica es clave para solucionar problemas…

3 semanas hace

Motorola planea lanzar al menos dos nuevos teléfonos Moto G en septiembre

Motorola ha confirmado el lanzamiento de Moto G84 5G y Moto G54 5G en India,…

1 año hace

El equipo de WizardLM afirma que un modelo de IA de terceros les robó el trabajo

Recuerde WizardCoder, ¿el codificador de IA que cubrimos recientemente aquí en Windows Report? Nos jactamos…

1 año hace

Las fallas del complemento Jupiter X Core amenazaron a 172.000 sitios web con apropiaciones de cuentas

Los investigadores han descubierto numerosos fallos de seguridad en el complemento WordPress Jupiter X Core…

1 año hace

Consola portátil Xbox: aquí tienes todo lo que necesitas saber al respecto

Para solucionar problemas del sistema de PC con Windows, necesitará una herramienta dedicada Fortect es…

1 año hace