Propel (informática)

Propel
Información sobre la plantilla
kit de mapeo objeto-relacional (ORM) de código abierto escrito en PHP. Es además una parte integral del framework Symfony y su ORM por defecto hasta la versión 1.2 inclusive.

Propel: kit de mapeo objeto-relacional (ORM) de código abierto escrito en PHP. Es además una parte integral del framework Symfony y su ORM por defecto hasta la versión 1.2 inclusive.

Inicios

Propel es un código abierto Object-Relational Mapping (ORM) para SQL-Bases de datos en PHP 5.4. Le permite acceder a su base de datos utilizando un conjunto de objetos, que proporciona una API sencilla para almacenar y recuperar datos.
Pero no sólo ORM normal sino que también proporciona la migración de esquemas de bases de datos, ingeniería inversa, existente y mucho más.
El proyecto Propel se inició en agosto del 2003, con la disponibilidad de la versión beta de PHP 5. Con la versión 5, PHP finalmente fue capaz de proveer un nivel de soporte para programación orientada a objetos que hiciera posible proyectos como Propel y creara una demanda para estos componentes hasta ahora desaparecidos de arquitectura orientada a objetos a gran escala. Propel se basó originalmente en el proyecto Apache Torque, que era un proyecto ORM del lenguaje Java.

Descripción

La función primaria de Propel es proveer un mapa entre las clases de PHP y tablas de bases de datos. Para lograr esto, Propel incluye un componente generador que usa generación de código fuente para construir clases PHP basadas en una definición de modelo de datos (datamodel definition) escrita en XML. Propel también incluye un componente de ejecución que maneja conexiones, transacciones y cualquier regla de idiosincrasia que describa el funcionamiento del RDBMS que este siendo usado con Propel.

Características

  • Propel es veloz
  • Propel da a su base de datos de una API bien definida.
  • Propel está bien documentada.
  • Propel viene con comportamientos comunes

Funcionamiento

Todo comienza con un archivo xml. El schema.xml.
<? xml version = "1.0" encoding = "UTF-8"> basedatos> name="bookstore" defaultIdMethod="native">

    columna> nombre="id" tipo="Integer" requerido="true" primaryKey="true" autoIncrement="true"/> 
    columna> name="title" type="varchar" size="255" requerido="true" /> 
    columna> name="isbn" type="varchar" size="24" requerido="true" phpName="ISBN"/> 
    columna> name="author_id" tipo="Integer" requerido="true"/>
    columna> nombre="id" tipo="Integer" requerido="true" primaryKey="true" autoIncrement="true"/> 
    columna> name="first_name" type="varchar" size="128" requerido="true"/> 
    columna> name="last_name" type="varchar" size="128" requerido="true"/> 

</ database>

Fuente