Titelaufnahme

Titel
Object Relational Mapping in PHP: Vergleich von Doctrine ORM und Propel
Weitere Titel
Object Relational Mapping in PHP: Comparison of Doctrine ORM and Propel
VerfasserJauernig, Michael
GutachterGöschka, Karl Michael
Erschienen2017
Datum der AbgabeJuni 2017
SpracheDeutsch
DokumenttypBachelorarbeit
Schlagwörter (DE)ORM / PHP / Doctrine / Propel / Performance Vergleich
Schlagwörter (EN)ORM / PHP / Doctrine / Propel / Performance Comparison
Zugriffsbeschränkung
 _
Klassifikation
Zusammenfassung (Deutsch)

Die Nachfrage nach Frameworks für Webseiten wächst ständig. PHP bietet unzählige Web-Development Frameworks wie Symfony, Zend, CakePHP, Laravel usw. Im Zusammenhang damit taucht folgende Frage auf: Wie kann eine Web-Anwendung mit einer Datenbank kommunizieren? Die Antwort darauf ist "object relational mapping".

Die vorliegende These beschäftigt sich mit diesem Thema: "Object relational mapping" oder kurz ORM. Der Stand der Technik wird erhoben und erklärt. Der Fokus liegt insbesondere auf den folgenden beiden PHP-ORMs: Doctrine und Propel.

Es wurde jeweils eine kleine Anwendung programmiert und für einen Vergleich der beiden ORMs wurden Messreihen definiert, die die Basis-Datenbank-Operationen messen. Die zu verwendende Datenbank in der vorliegenden Arbeit ist MariaDB. Durch die Implementierung entstanden fünf verschiedene Kriterien, anhand derer zusätzlich noch ein qualitativer Vergleich der ORMs entstanden ist. In diesem Vergleich werden Vor- und Nachteile von Propel und Doctrine ORM dargelegt.

Die Messergebnisse zeigen, dass Propel - bis auf die Delete-Datenbank-Operation - als klarer Sieger hervor geht. In den dargestellten Messungen sind zwei Mischbenchmarks - Heavy Read und Heavy Update - enthalten, welche eine Kombination aus zwei Datenbank-Operationen darstellen. Die verwendete Read/Write Ratio vom Heavy Read Benchmark beträgt 10% Write und 90% Read. Das Verhältnis des verwendeten Heavy Update ist 50/50. Propel dominiert die Mischbenchmarks. Doctrine benötigt um das 10-fache mehr Zeit, um die Messungen durchzuführen. Propel als ORM ist somit eine gute Wahl.

Zusammenfassung (Englisch)

Demand for frameworks for websites is constantly growing. PHP offers countless web development frameworks like Symfony, Zend, CakePHP, Laravel, etc. In this context, the following question pops up: How can a web application communicate with a database? The answer is "object relational mapping".

The present thesis deals with this topic: "object relational mapping" or briefly ORM. The state of the art is raised and explained. The focus is especially on the following two PHP ORMs: Doctrine and Propel.

A small application was programmed and a series of measurements was used to compare the two ORMs, which measured the basic database operations. The database to be used in this work is MariaDB. The implementation resulted in five different criteria, which also led to a qualitative comparison of the ORMs. In this comparison, the advantages and disadvantages of Propel and Doctrine ORM are presented.

The measurement results show that Propel - except for the Delete database operation - is a clear winner. In the measurements shown, there are two mixing benchmarks - heavy read and heavy update - which represent a combination of two database operations. The read / write ratio of the Heavy Read benchmark is 10% Write and 90% Read. The ratio of the heavy update used is 50/50. Propel dominates the mixing benches. Doctrine requires 10 times more time to perform the measurements. Propel as an ORM is thus a good choice.