Hey dedlfix,
Kurze andere Frage: PDO vs. Zend-Db? Kann mir jemand kurz und knapp sagen, warum ich das eine oder das andere favorisieren sollte? Im Endeffekt baut Zend-Db doch nur PDO nach, oder?
Bei PDO ist man auf die Implementationen in PHP angewiesen. Zend_Db muss aber nicht nur auf PDO aufsetzen. Es könnte auch direkt mysqli supporten (tut's ja auch) oder irgendwelche anderen in PDO nicht enthaltenen DBMSe. Außerdem fügt sich Zend_Db viel besser als PDO in das ZF ein, weil es ja direkt nach den ZF-Coding-Style-Richtlinien entworfen wurde. Auf PDO hat man da (theoretisch) keinen Einfluss.
guter Punkt!
Man hat ja damals mit PDO angefangen, weil man sich so die einzelnen Adapter für die verschiedenen DBMSe sparen konnte. Vermutlich war man damit teilweise nicht so glücklich und/oder performant, so dass man dann doch noch separate Adapter hinzugefügt hat.
War PDO dafür gedacht, sich die Adapter sparen zu können? Ich bin da drüber nicht informiert, dachte aber, PDO sei entwickelt worden um eine "reibungslose" Migration von einem zum anderen DB-System bei gleicher Syntax zu ermöglichen? Oder ist das das gleiche?
Sollte es nicht das gleiche sein, wäre das für mich sicher eine Überlegung wert PDO nicht zu verwenden, da dies ja wieder auf grundsätzliche Design-Fehler schließen lassen würde.
Ich nutze zur Zeit ausschließlich PDO. Oder besser gesagt: Eine eigene Datenbank-Klasse, die PDO erweitert.
Damit machst du ja sowas ähnliches wie Zend_Db mit PDO.
Vielleicht ja. An den Punkt, darüber nachzudenken, bin ich noch nicht gekommen. Allerdings wäre es dann hier wohl wieder der Fall, über den wir uns schon vorher unterhalten haben: Ich komme irgendwann dahin, dass meine Implementation der des bereits bestehenden (Zend-)Frameworks ähnelt und der Begriff "überladen" würde bei mir eine neue Bedeutung bekommen.
Ein Beispiel, was ich mit "Komfort-Methoden" meine. Sagen wir, ich möchte ein Plugin laden. Das kann ich [auf verschiedene Weisen] laden [...]. Auch wenn das überspitzt ist, lade ich in alle der vorherigen Fälle das gleiche Plugin [...].
Mein Problem hierbei ist, dass ich es an verschiedenen Stellen der Anwendung immer wieder anders machen könnte, sodass es nachher unübersichtlich wird.Das liegt in deiner Verantwortung als Programmierer. Ob es sinnvoll ist, dass sich das ZF nur auf eine Weise festlegt, wo doch viele Anwender unterschiedliche Wünsche haben können? Selbst wenn es nur eine Methode gäbe, könntest du noch genügend Inkonsistenzen in deine Anwendung einbauen.
Ja, leider. Und genau dafür habe ich so eine Vorliebe... ;-)
Noch schlimmer dürfte es werden, wenn mehrere Entwickler am gleichen Projekt arbeiten.
Ja, aber da wirst du nur mit viel (Kommunikations)aufwand oder strengen Richtlinien alle in die selbe Spur bekommen. Auch hier musst du die Balance zwischen Konsistenz und zu vielen Einschränkung finden.
Wie überall im Leben: Die Waage! So, wie Du es schreibst, hört es sich so klar und richtig an. Aber, dass weißt Du ja auch, genau darin wird wohl die Kunst bestehen.
Danke und Gruß, Dennis