Monster: /Programmiertechnik OOP & PHP

Hi,

ich möchte eine Partnerbörse in PHP programmieren und objektorientiert arbeiten.
Bin noch OOP Anfänger. Wieweit müsste man bei den Objekten abstrahieren? Mir fallen spontan folgende Objekte ein:

Mann
Frau
Profil_Mann
Profil_Frau
Treffen
Datenbankanbindung

Wären das alle?
Würdet Ihr das anderes machen?

Danke !!!!!!!!!!!!!

  1. Hi Monster,

    Mir fallen spontan folgende Objekte ein:
    Mann
    Frau

    nein, ich spare mir jetzt detaillierte Kommentare zu diesen "Objekten" ... ;-)

    Stattdessen lautet meine Gegenfrage: Woher willst Du wissen, daß Du für diese beiden Ausprägungen nicht ein gemeinsames Objekt verwenden kannst?

    Würdet Ihr das anderes machen?

    Ich würde zunächst versuchen, alle darzustellenden Daten in Form von Attributlisten zu beschreiben.  Wieviele Objekte am Ende daraus entstehen werden, das weiß ich am Anfang dieses Prozesses sicherlich noch nicht - das werde ich aber sehen, sobald ich alle Attribute habe und anschließend versuche, gängige Normalform-Techniken auf diese Daten anzuwenden.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. Hi Michael,

      Du bist ja heute richtig fliessig. Ist wohl nix los in Berlin? Oder regnet es?

      Wo wir gerade dabei sind, Grundsätzliches zu diskutieren:

      Welchen Sinn hatt OOP in PHP überhaupt? Es findet ja keine Kapselung statt. Den einzigen Vorteil sehe ich darein, dass man mit dopplet vergebenen Funktionsnamen nicht so aufpassen muss.

      Kannst Du mir also den Sinn für OOP speziell in der Welt der Webscripte erklären? Ein echtes Entwicklungssxstem dafür gibts ja auch nicht, oder?

      Grüße

      Chris©

      1. Hi Chris,

        Welchen Sinn hatt OOP in PHP überhaupt? Es findet ja keine Kapselung statt. Den einzigen Vorteil sehe ich darein, dass man mit dopplet vergebenen Funktionsnamen nicht so aufpassen muss.

        Ne, Ne, OOP erleichtert einfach die Modularisierung, und macht allgemein den Code besser handlebar. Du hast klar definierte Schnittstellen in Deinem System und kannst Teile des Codes problemlos austauschen. Die Abstraktion von Real-World Objekten auf Programmierprojekten macht das Programmieren anschaulicher. Wenn Du beachtest auf Attribute immer mit Zugriffsfunktionen zuzugreifen, kannst Du in vielen Fällen schön einfach erweitern... OOP hat viele Vorteile, und bei allem was über ein paar Zeilen Ausgabe oder so herausgeht setzte ich immer OOP ein. Wenn solche Systeme wachsen, und immer wieder neue Anforderungen implementiert werden müssen, erleichtert das das Leben enorm.

        Kannst Du mir also den Sinn für OOP speziell in der Welt der Webscripte erklären?

        Ich kapsle meistens die Daten, und die ganze Funktionalität in Klassen, für die Ausgabe schreibe ich dann Templates (=PHP-Seiten), in denen die Klassen eingebunden werden, und an den entsprechenden Stellen rufe ich Methoden auf, die variable Bestandteile einfügen. Die Methoden sollten dabei möglichst wenig HTML-Tags "ausspucken", sondern nur Daten.
        Präsentationslogik (z.B. jder 2. Zeile rot, oder so) kann man in die Templates packen, diese sollten aber keine Anwendungslogik enthalten.
        Ich denke so oder so ähnlich werden die meisten Leute arbeiten, die Objektorientiert PHP programmieren (O.K. das war jetzt Implmentierung, nicht Sinn).

        Ein echtes Entwicklungssxstem dafür gibts ja auch nicht, oder?

        Es gibt Editoren, die Dir die Klassen parsen, und Codeergänzung anbieten (d.h. Du schreibst den Namen einer Objektvariablen hin, und kriegst eine Liste der Methoden zum auswählen), das ist eigentlich ganz praktisch, Maguma Studio kann das glaube ich. (Ich selbst verwende es nicht, weil ich unter Linux arbeite).

        Gruss

        Marko