Propel: Unterschied zwischen den Versionen
aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Kowa (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{Qualität | {{Qualität | ||
|correctness = | |correctness = 2 | ||
|extent = 2 | |extent = 2 | ||
|numberOfReferences = 3 | |numberOfReferences = 3 | ||
|qualityOfReferences = 1 | |qualityOfReferences = 1 | ||
|conformance = | |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> | |||
'''Propel''' | '''Zugriff auf die Datenbank via Propel''' | ||
= | <source lang="php"> | ||
<?php | |||
Propel | 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 | * [[MySQL]] | ||
* PostgreSQL | * [[PostgreSQL]] | ||
* SQLite | * [[SQLite]] | ||
* Microsoft SQL Server | * [[Microsoft SQL Server]] | ||
* Oracle | * [[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:World Wide 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();
