Barry: Allgemeine Fragen zu mysqli und OOP

Hallo,

Bisher programmiere ich in php erst sehr wenig OOP und umso mehr strukturiert und funktionsbasiert. D.h., ich lagere alle wichtigen Funktionen aus und steuere die dann über entsprechende Parameter an.

Ich taste mich jetzt so langsam an den nächsten Schritt auf der Evolutionsleiter der Programmierung heran und mache erste Bekanntschaft mit OOP, ich gebe aber zu, dass ich dieses Thema einfach noch nicht wirklich überreisse.

Gleichzeitig habe ich heute erstmalig von den neuen Möglichkeiten von mysqli gelesen und auch, dass ich mysqli sowohl prozedural als auch objektorientiert verwenden kann. Daher bringe ich alle meine Fragen in nur 1 Thread unter, auch wenn sie nicht unmittelbar miteinander zu tun haben.

Hier dazu also meine erste Frage: Kann ich auch beim Ausbau bereits vorhanderer Projekte mysqli parallel zu den älteren mysql Befehlen verwenden?

Und gleich Frage 2 hinterher: Sollte ich in den alten Projekten, die ich ausbaue, nicht dann lieber noch beim prozeduralöen Programmierstil bleiben, selbst wenn ich schon die Vorzüge von mysqli verwenden möchte?

Und dann noch 2 weitere, etwas allgemeiner Fragen zum Thema OOP:

Werden Projekte in php auch ganz konsequent objektorientiert programmiert oder ist das im Grunde immer eine Mischung aus okjektprogrammiert und prozedural?

Wie schaffe ich einen sinnvollen Übergang in "meine" nächste Stufe? Wie gesagt, bisher verwende ich nur sehr wenig und etsprechend wenig wissensfundiertes OOp, z.B. über die Benutzung von fpdf.

Viele Grüße und danke für sinnvolle Hinweise und Hilfe. Es geht mir nicht um Alles oder Nichts, ich möchte über ein HIneinschnuppern in OOP und die Sicht auf Vorteile hier und da einfach Gefallen an dem Thema entwickeln.

Barry

  1. Hi!

    Kann ich auch beim Ausbau bereits vorhanderer Projekte mysqli parallel zu den älteren mysql Befehlen verwenden?

    Ja, das ist kein generelles Problem. Du hast dann aber zwei getrennte Verbindungen und kannst beispielsweise nicht mit mysql einen Datensatz einfügen und mit mysqli dessen ID über last_insert_id ermitteln.

    Sollte ich in den alten Projekten, die ich ausbaue, nicht dann lieber noch beim prozeduralöen Programmierstil bleiben, selbst wenn ich schon die Vorzüge von mysqli verwenden möchte?

    Das ist deine Entscheidung. Du kannst durchaus mysqli objektorientiert verwenden, auch wenn die restliche Umgebung prozedural oder einfach nur geradeaus programmiert ist. Das wäre vom Prinzip so, wie mysql_fetch_object() zu verwenden. Da hast du dann plötzlich ein Objekt für die Ergebniszeile und rundherum sonstwelchen Code.

    Werden Projekte in php auch ganz konsequent objektorientiert programmiert oder ist das im Grunde immer eine Mischung aus okjektprogrammiert und prozedural?

    Was ist konsequent? Es gibt weiterhin die nicht-objektorientierten Funktionen, die du auch weiterhin herkömmlich aufrufen musst. Und noch wichtiger: das herkömmliche Errorhandling. Nur weil du jetzt objektorientiert programmierst, wirft PHP noch lange nicht alle Fehlermeldungen als Exceptions.

    Wie schaffe ich einen sinnvollen Übergang in "meine" nächste Stufe? Wie gesagt, bisher verwende ich nur sehr wenig und etsprechend wenig wissensfundiertes OOp, z.B. über die Benutzung von fpdf.

    Üben, lernen, Erfahrungen sammeln, Augen offenhalten, schauen, wie es andere machen, Fragen stellen.

    Lo!

  2. hi,

    Viele Grüße und danke für sinnvolle Hinweise und Hilfe. Es geht mir nicht um Alles oder Nichts, ich möchte über ein HIneinschnuppern in OOP und die Sicht auf Vorteile hier und da einfach Gefallen an dem Thema entwickeln.

    OOP macht Sinn, wenn sich das Ergebnis als Objekt modellieren lässt und nicht, weil das die Programmiersprache so hergibt.

    Z.B. mach es durchaus Sinn, einen Datensatz einer DB als Objekt zu betrachten. Die Abfrage selbst ist dann eine Methode des Objects und die Attribute sind die Feldnamen. Und das Ergebnis eines komplizierten Joins könnte ich mir auch sehr gut als Objekt vorstellen.

    Hotti