Propel: Unterschied zwischen den Versionen
aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Palt (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{Qualität | |||
|correctness = 2 | |||
|extent = 2 | |||
|numberOfReferences = 3 | |||
|qualityOfReferences = 1 | |||
|conformance = 3 | |||
}} | |||
'''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<ref>http://propelorm.org/</ref><ref>http://sandbox.propelorm.org/example/bookstore</ref>== | ||
'''Definition des [[Datenmodell]]s''' | |||
<source lang="xml"> | |||
<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> | |||
</source> | |||
'''Zugriff auf die Datenbank via Propel''' | |||
<source lang="php"> | <source lang="php"> | ||
$ | <?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(); | |||
</source> | </source> | ||
=Unterstütze Datenbanken= | ==Unterstütze Datenbanken== | ||
* [[MySQL]] | |||
* [[PostgreSQL]] | |||
* [[SQLite]] | |||
* [[Microsoft SQL Server]] | |||
* [[Oracle]] | |||
==Quellen== | |||
<references/> | |||
==Siehe auch== | |||
# [http://www.symfony-project.org/book/1_2/08-Inside-the-Model-Layer Propel and Symfony Framework] | |||
[[Kategorie:Glossar]] | [[Kategorie:Glossar]] | ||
[[Kategorie: | [[Kategorie:Datenmanagement]] | ||
[[Kategorie:Web]] | [[Kategorie:World Wide Web]] | ||
Aktuelle Version vom 14. Februar 2017, 07:42 Uhr
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();
