Propel

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 2
(teilweise überprüft)
Umfang: 2
(wichtige Fakten fehlen)
Quellenangaben: 3
(wichtige Quellen vorhanden)
Quellenarten: 1
(ausreichend)
Konformität: 3
(gut)

Propel ist eine ORM-Bibliothek für PHP 5.5+, die es erlaubt, PHP-Objekte in einer relationalen Datenbank zu speichern und zu bearbeiten.

Funktionsweise

Propel erstellt die Modelle anhand von XML-Beschreibungsdateien, die mittels des Generators erstellt werden können. Durch die Runtine Engine werden die Objekte der eigenen PHP Anwendung zur Verfügung gestellt.

Beispiel[1][2]

Definition des Datenmodells

<database name="default">
  <table name="book">
    <column name="id"        type="integer"            required="true" primaryKey="true" 
                                                                       autoIncrement="true"/>
    <column name="title"     type="varchar" size="255" required="true" />
    <column name="isbn"      type="varchar" size="24"  required="true" phpName="ISBN"/>
    <column name="author_id" type="integer"            required="true"/>
    <foreign-key foreignTable="author">
      <reference local="author_id" foreign="id"/>
    </foreign-key>
  </table>
  <table name="author">
    <column name="id"         type="integer"            required="true" primaryKey="true" 
                                                                        autoIncrement="true"/>
    <column name="first_name" type="varchar" size="128" required="true"/>
    <column name="last_name"  type="varchar" size="128" required="true"/>
  </table>
</database>

Zugriff auf die Datenbank via Propel

<?php

use Propel\Test\Bookstore\Author;
use Propel\Test\Bookstore\Book;
use Propel\Test\Bookstore\BookQuery;

$book = new Book();
$book->setTitle('My Heros');
$book->setIsbn('123154');

$author = new Author();
$author->setFirstName('Hans');
$author->setLastName('Zimmer');

$book->setAuthor($author);
$book->save();

$books = BookQuery::create() 
          -> filterByTitle('My Heros')
          -> find();

Unterstütze Datenbanken

Quellen

Siehe auch

  1. Propel and Symfony Framework