Clases/Objetos de Conexion Directa a tablas

De CidesaWiki

Saltar a navegación, buscar

Symfony contiene una herramienta que agiliza la comunicación con la base de datos; esta es llamada [Propel], la misma genera clases en distintos lenguajes para manejar las diferentes tablas de la base de dados, en esta artículo analziaremos como trabaja y como nos puede ayudar:


Configurando/Ejecución Propel

Propel dentro de symfony trabaja con la información que contiene el archivo schema.yml, en el cual se coloca la información o estrucura de las tablas de la base de datos que queremos generar. El archivo schema.yml contiene información como la siguiente:

---
propel:
  _attributes: { noXsd: false, defaultIdMethod: none, package: lib.model }
  carecpro: 
    codpro: 
      type: VARCHAR
      size: 10
      required: true
    codrec: 
      type: VARCHAR
      size: 10
      required: true
    fecent: 
      type: DATE
    fecven: 
      type: DATE
    id: 
      type: INTEGER
      required: true
      autoIncrement: true

La estrucura del archivo .yml es llamada [YAML], y es la forma como el propel de symfony obtiene los parámetros de ejecución y generación de las clases. En el ejemplo anterior se definió una tabla llamada carecpro, que contiene los campos codpro, codrec, fecent, fecven y id, el cual le dirá a propel como crear la clase de comunicación con la tabla.

Luego de tener debidamente configurado el archivo .yml, se procede hacer el llamado de la función propel de symfony por consola:

NOTA: debes estar en el directorio raiz del proyecto.

# symfony propel-build-model

Esta función te indicará el nombre de la clase resultante y los archivos que fueron creado.


Clases y Archivos Generados

Luego de ejecutar la herramienta Propel, la misma genera los siguientes archivos/clases:


--lib
----model
------map (carpeta)
--------CarecproMapBuilder.php
------om (carpeta)
--------BaseCarecpro.php
--------BaseCarecproPeer.php
------Carecpro.php
------CarecproPeer.php

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas