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        = 0
|correctness        = 2
|extent              = 2
|extent              = 2
|numberOfReferences  = 3
|numberOfReferences  = 3
|qualityOfReferences = 1
|qualityOfReferences = 1
|conformance        = 0
|conformance        = 3
}}
}}


{{Verbesserungswürdiger Inhalt
'''Propel''' ist eine [[ORM]]-Bibliothek für PHP 5.5+, die es erlaubt, PHP-Objekte in einer relationalen Datenbank zu speichern und zu bearbeiten. 
| {{SITENAME}}-Regeln = true  
 
}}
==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''' bietet Objektrelationales Mapping (ORM) für PHP 5, um Objekte in einer relationalen Datenbank speichern und bearbeiten zu können.
'''Zugriff auf die Datenbank via Propel'''


==Verwendungszweck==
<source lang="php">
<?php


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.
use Propel\Test\Bookstore\Author;
use Propel\Test\Bookstore\Book;
use Propel\Test\Bookstore\BookQuery;


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


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.
$author = new Author();
$author->setFirstName('Hans');
$author->setLastName('Zimmer');


==Beispiel==
$book->setAuthor($author);
Folgendes Beispiel würde ein neues Objekt erzeugen und dieses direkt in der Datenbank speichern.
$book->save();


<source lang="php">
$books = BookQuery::create()  
$model = new TestModel();
          -> filterByTitle('My Heros')
$model->setTitle('Test-Title');
          -> find();
$moodel->save();
</source>
</source>


==Unterstütze Datenbanken==
==Unterstütze Datenbanken==


* MySQL
* [[MySQL]]
* PostgreSQL
* [[PostgreSQL]]
* SQLite
* [[SQLite]]
* Microsoft SQL Server
* [[Microsoft SQL Server]]
* Oracle
* [[Oracle]]
 
==Quellen==


==Links==
<references/>


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

Unterstütze Datenbanken

Quellen

Siehe auch

  1. Propel and Symfony Framework