![]() |
|
The symfony CookbookPropel 1.3 Anleitung |
|
You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.

|
This work is licensed under a
Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed. |
von Carl Vondrick - Übersetzung Fabian Lange
Dank der Entkopplung von symfony 1.1 und Propel ist es nun sehr einfach geworden Propel 1.3 in symfony Projekten einzusetzen. Propel 1.3 bring im Vergleich zu 1.2 eine wesentlich bessere Geschwindigkeit, eine native Nested Set Implementierung für leiches Ablegen von Bäumen, Object Instance Pooling und vieles mehr. Insbesondere die bessere Performance von Propel 1.3 ist auf PDO zurückzuführen, welches anstelle von Creole als Databankabstraktionsschicht eingesetzt wird.
Die Installation von Propel 1.3 dauert nur wenige Minuten. Es muss nur das entsprechene Plugin installiert und zwei Konfigurationsdateien geändert werden:
Das Propel 1.3 Plugin aus dem symfony Repository installieren:
$ cd /path/to/project/root/
$ svn co http://svn.symfony-project.com/plugins/sfPropelPlugin/branches/1.3/ plugins/sfPropelPlugin
Propel 1.3 benutzt ein neues Format für die Datenbankverbindung. Die databases.yml muss entsprechend angepasst werden. Ändere config/databases.yml so, dass sie der Folgenden mit den notwendigen projektspezifischen Änderungen entspricht:
dev:
propel:
param:
classname: DebugPDO
all:
propel:
class: sfPropelDatabase
param:
dsn: mysql:dbname=mydb;host=localhost
username: Benutzername
password: Passwort
encoding: utf8
persistent: true
pooling: false
classname: PropelPDO
Das PDO Handbuch enthält weitere Informationen zu dem Aufbau der DSN.
Die Datei propel.ini muss ebenfalls aktualisiert werden um dieser Konfiguration zu entsprechen. Ersetze die folgenden 3 Zeilen am Anfang von config/propel.ini :
propel.database = mysql propel.database.createUrl = mysql://root@localhost/ propel.database.url = mysql://root@localhost/myproject
Und ersetze sie durch:
propel.database = mysql propel.database.driver = mysql propel.database.createUrl = mysql://localhost/ propel.database.url = mysql:dbname=mydb;host=localhost propel.database.user = Benutzername propel.database.password = Passwort propel.database.encoding = utf8
Wobei propel.database.url der DSN aus Schritt 2 entsprechen muss.
Lösche symfony's internen Cache mit:
$ symfony cache:clear
Da Propel 1.3 ein verbessertes Objektmodell hat muss das model ebenfalls neu erstellt werden:
$ symfony propel:build-model
Wenn dies ein neues Projekt sein sollte sind wir hier schon fertig und Propel 1.3 ist fertig installiert! Die schema.yml Syntax ist genau die gleiche wie in Propel 1.2. Die neue API ist nicht viel anders; genaugenommen ist die API in den meisten Teilen identisch.
Wenn ein bereits existierendes Projekt mit Propel 1.3 aktualisiert werden soll, kann noch etwas Anpassungsarbeit erforderlich sein, allerdings sollten große Teile des Projekts bereits jetzt funktionieren. Wenn Transaktionen oder Creole direkt vom Projektcode benutzt werden, müssen diese Stellen manuell auf PDO Code umgeschrieben werden. Auf den Webseiten des Propel Projektes gibt es hilfreiche Upgrade Anleitungen welche durch den Upgradeprozess führen. Auch wenn das Projekt ein neues Projekt sein sollte oder es keine Probleme geben sollte, bieten die Propel Seiten einen guten Überblick über die neuen Features.
symfony 1.1 entkoppelt seine Kernkomponenten, so dass es nicht leichter sein kann ein ORM nach Wahl zu benutzen. Falls Propel nicht überzeugen sollte steht das sfDoctrinePlugin, eine Alternative zu Propel mit ähnlicher Performance und Features wie Propel 1.3, zum Ausprobieren bereit. Dank symfony 1.1 können Entwickler zwischen Propel 1.3 für Features und Performance oder Propel 1.2 für Absolute Stabilität, oder einem ganz anderen ORM, wählen.
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.