Propel: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Palt (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Propel''' bietet Objektrelationales Mapping (ORM) für PHP 5, um Objekte in einer relationalen Datenbank speichern und bearbeiten zu können.
{{Qualität
|correctness        = 2
|extent              = 2
|numberOfReferences  = 3
|qualityOfReferences = 1
|conformance        = 3
}}


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


Propel erlaubt vollständige Objektorientierte Programmierung, ohne dabei SQL Abfragen schreiben zu müssen. Objekte können direkt aus einer Datenbank erstellt aber auch geschrieben werden. Durch die Verwendung des ORM können SQL-Injections und andere Sicherheitslücken abgefangen werden, da zu keiner Zeit direkte SQL Abfragen bearbeitet werden.
==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.


=Funktionsweise=
==Beispiel<ref>http://propelorm.org/</ref><ref>http://sandbox.propelorm.org/example/bookstore</ref>==
'''Definition des [[Datenmodell]]s'''


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.
<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>


=Unterstütze Datenbanken=
'''Zugriff auf die Datenbank via Propel'''


* MySQL
<source lang="php">
* PostgreSQL
<?php
* SQLite
* Microsoft SQL Server
* Oracle


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


* [http://propel.phpdb.org/trac/ Propel Website]
$book = new Book();
* [http://codepoets.co.uk/propel_php5_framework_quickstart_howto_guide Propel : An introduction to a PHP Object Relational Mapping and Querying Framework]
$book->setTitle('My Heros');
* [http://www.symfony-project.org/book/1_2/08-Inside-the-Model-Layer Propel and Symfony Framework]
$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>
 
==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:Informatik]]
[[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();

Unterstütze Datenbanken

Quellen

Siehe auch

  1. Propel and Symfony Framework