Clases/Objetos de Conexion Directa a tablas

De CidesaWiki

(Diferencias entre revisiones)
Saltar a navegación, buscar
Línea 63: Línea 63:
* '''CarecproMapBuilder.php''': Este archivo contiene la información necesaria para generar la tabla de forma dinámica en la base de datos. No es muy relevante para nuestro proyecto.
* '''CarecproMapBuilder.php''': Este archivo contiene la información necesaria para generar la tabla de forma dinámica en la base de datos. No es muy relevante para nuestro proyecto.
-
* '''BaseCarecpro.php''': Este archivo
+
* '''BaseCarecpro.php''': Este archivo es la clase base de la clase Carecpro.php. Este archivo contiene el codigo de conexion con la tabla de la base de datos. Este archivo no debe ser modificado ya que es generado automaticamente por el propel. Esta clase no puede ser instanciada (no se pueden generar objetos)
 +
 
 +
* '''BaseCarecproPeer.php''': Este archivo es la clase base de la clase CarecproPeer.php, la cual contiene la funciones estáticas de comunicación con la tabla de la base de datos y la funciones generales de la tabla. Esta clase no puede ser instanciada (no se pueden generar objetos)
 +
 
 +
* '''Carecpro.php''': Esta clase genera los objetos de datos con la tabla. '''Cada objeto de esta clase es equivalente a un registro de la tabla. De manera que mediante estos objetos podemos insertar, modificar o eliminar registros de la tabla sin necesidad de generar ninguna instrucción SQL.''' Esta clase puede ser modificada sin nungun problema. Propel genera esta clase para que le sean agregadas funciones por el usuario sin chocar con la estrucura base de conexion que contiene la clase BaseCarecpro.php
 +
 
 +
* '''CarecproPeer.php''': Esta clase

Revisión de 18:25 30 abr 2007

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