Jonathan Wage (Mitte) stand t3n-CTO Martin Herr (links) und Symfony-Day-Initiator Dennis Benkert in Köln Rede und Antwort.
t3n Magazin: Jonathan, als Lead-Developer eines Object Relationship Mappers (ORM) können Sie uns doch sicher gut erklären, was das eigentlich ist.
Jonathan Wage: Ein ORM ist eine Abstraktionsschicht zwischen relationaler Datenbank und der eigentlichen Anwendung. Statt per SQL kann man durch das ORM objektorientiert auf die Daten zugreifen.
t3n Magazin: Sie sind erst 2007 zum Doctrine-Team dazugestoßen und haben dann ziemlich schnell die komplette Verantwortung für das Projekt übernommen. Wie kam es dazu?
Jonathan Wage: Zu dieser Zeit gab es niemanden, der eine komplette Version des Projekts hatte. Wir hatten zwar gute Entwickler, aber keine Organisation, keinen Plan und keine Vision. Dass ich das Projekt übernommen habe, kam letztlich dadurch zustande, dass ich anfing, alles zu organisieren und zu verwalten, was wir bereits hatten und sicherzustellen, dass das Projekt schnell voran kommt.
t3n Magazin: Neben Ihnen arbeiten noch andere Core-Entwickler an Doctrine. Wer sind die anderen und für was sind sie im Projekt zuständig?
Jonathan Wage: Da gibt es zum Beispiel Roman Borschel, der sozusagen das Gehirn hinter dem Projekt ist. Er hat die meisten Ideen für den Code von Doctrine 2 und ist allein dafür verantwortlich, dass wir uns bei der Entwicklung von der Java-Persistance-API haben inspirieren lassen. Auch Core-Entwickler Guilherme Blanco hilft an vielen Stellen, sowohl bei der Entwicklung von Doctrine, als auch bei der Dokumentation.
t3n Magazin: Das Open-Source-PHP-Framework Symfony empfiehlt seit einiger Zeit Doctrine als ORM. Welche Vorteile bietet Doctrine gegenüber anderen ORM-Systemen wie zum Beispiel Propel?
Jonathan Wage: Propel ist im Grunde kein ORM, sondern ein erweiterter Code-Generator, der Funktionalitäten von ORM wie Active Record, Data Mappers und andere nachahmt. Doctrine hingegen ist eine reine ORM-Implementierung.
t3n Magazin: Welche anderen PHP-Frameworks neben Symfony setzen auf Doctrine als ORM?
Jonathan Wage: Spontan fallen mir Zend Framework, CodeIgniter, CakePHP und Agavi ein. Ich bin mir aber sicher, dass ich einige vergessen habe.
t3n Magazin: Die Eigenentwicklung eines ORM kann man wohl als die komplexeste Herausforderung für einen Programmierer bezeichnen, da das ORM anderen Entwicklern in ihren Projekten als Fundament dient und sie entsprechend einen hohen Qualitätsanspruch daran stellen. Auf das ORM muss man sich verlassen können. Wie stellen Sie bei Doctrine sicher, dass keine gravierenden Fehler im Quellcode enthalten sind?
Jonathan Wage: Wir verwenden ein paar Tools, die uns helfen. PHPUnit für das komplette Unit-Testing, Code-Coverage und andere Qualitätssicherungsmaßnahmen. Sismo, um PHPUnit für Continuous-Integration zu integrieren. Unsere Test-Suite wird damit bei jedem Commit gestartet und testet ihn gegen alle unterstützten Datenbanksysteme, um sicherzustellen, dass wir keine Fehler einführen. Phing nutzen wir für das Erstellen von Projekten, von Paketen und für das Deployment. PEAR kommt beim Erstellen der PEAR-Package-Files zum Einsatz, die wir durch Phing generieren lassen. Wir haben übrigens erst letztens einen Blog-Artikel über die Qualitätssicherungsmaßnahmen von Doctrine veröffentlicht (http://bit.ly/ZJdJT).







Eine Antwort
von t3n-Interview: Jonathan Wage über seine… 10.06.2010 (08:50Uhr) 1.
[...] überhaupt braucht und was man in Nashville als Programmierer sonst noch so alles machen kann. Der Artikel ist jetzt kostenlos im Heftarchiv verfügbar. Zudem kannst Du t3n Nr. 18 versandkostenfrei in unserem Shop bestellen. Ads_BA_AD('CAD2'); [...]