[OOP] Erste PHP-Klasse bitte checken und habe Problem mit einer Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Original geschrieben von ill-maestro
    @onemorenerd: Was sollte ich denn deiner Meinung nach auslagern?
    Beispielsweise alles was mit dem Speichern von Daten zu tun hat. Also Session, Cookie und DB - alles raus.

    Du als User von Welt weißt doch auch nicht, wie und wo dein Meldeamt die Daten speichert. Wenn du umziehst, teilst du dem Amt deine neue Anschrift mit. Wenn du eine Geburtsurkunde brauchst, gehst du hin und holst eine.
    Das Meldeamt ist eine Schnittstelle zu irgendeiner Art von dauerhaftem Speicher. Wie der genau aussieht, weißt du nicht. Kann dir auch egal sein, hauptsache Schnittstelle und Speicher erfüllen gewisse Ansprüche (Korrektheit, Dauerhaftigkeit, Datenschutz, etc).

    So solltest du auch programmieren. Die Klasse User hat mindestens zwei Zustände, eingeloggt und nicht eingeloggt, und die Fähigkeit, zwischen diesen Zuständen zu wechseln. Dann hat es vielleicht noch Profildaten oder wasweißich.
    Aber die User-Klasse weiß nicht was Cookies oder Sessions sind und wenn es z.B. Profildaten speichern will, dann übergibt sie die Daten (oder sich selbst als Datencontainer) an eine Schnittstelle.

    Die Vorteile sind einleuchtend. Wenn du alles über Schnittstellen abwickelst, kannst du Komponenten problemlos austauschen. Solange die Schnittstelle sich nicht ändert, kein Problem. Wenn die User Klasse sich um alle ihre Belange und nur diese kümmert, kannst du die Klasse später erweitern, ohne die Applikation drumherum anpassen zu müssen.

    Kommentar


    • #17
      OK, aber wie sollte ich das aufbauen? Habe jetzt nach session- und cookie-Klassen gegoogelt, aber blicke trotzdem irgendwie nicht durch. Wie würde das denn ungefähr aussehen, wenn ich die Sachen für Cookie, Session und DB auslagere? Sorry, aber bin noch ziemlicher n00b

      Kommentar


      • #18
        Bei Webapplikationen empfiehlt es sich, mit Request- und Reponse-Objekten zu arbeiten. Ein Router oder Dispatcher nimmt die Anfrage entgegen, konstruiert ein Request-Objekt, steckt da alles rein, was diese Anfrage so ausmacht (URL, GET-, POST- und COOKIE-Parameter) und übergibt es dem für die jeweilige Route zuständigen Controller.
        Mit Sessions wird ähnlich verfahren. Der Controller bekommt ein Storage-Objekt übergeben oder hat über seinen Kontext Zugriff darauf. Dieses Objekt abstrahiert sämtliche Details der Datenspeicherung. Sessiondaten werden entweder auch über das Storage Objekt verwaltet oder es gibt noch ein eigenes Session Objekt. Die genaue Kapselung ist abhängig von der Anwendung und dem persönlichen Geschmack.

        Alles zu abstrakt? Dann schau dir mal die Komponenten gängiger Frameworks an.
        Für Router/Request/Reponse gibt es afaik bei Zend ein Schema-Bild ... ja da ist es:
        http://framework.zend.com/manual/en/...ler.basics.png

        Meine Beschreibungen sind natürlich nicht die Wahrheit. Viele Wege führen nach Rom.

        Kommentar


        • #19
          Sie mir bitte nicht böse, aber was ein Router, ein Dispatcher usw. sind weis ich nicht... Hast du keine Seiten oder Beispiele für nen Anfänger parat? Hab mir das ganze PHP und MySQL selber über Tutorials beigebracht, also hatte auch noch kein Buch in der Hand und will jetzt beginnen anstatt prozedural objektorientiert zu entwickeln...

          Kommentar


          • #20
            Ließ doch einfach einmal ein wenig in der Doku zum Zend Framework, die ist nämlich ziemlich gut. Da sollte für einen Anfänger genug dabei sein.

            Kommentar


            • #21
              Gut, aber habt ihr noch weitere gute Links oder könnt ihr Bücher zu dem Thema empfehlen?

              Kommentar


              • #22
                Bei google findest Du alles was Du brauchst, aber auch ein Printmedium (gutes Buch) zum abendlichen Durchblättern ist zu empfehlen (z.B. von Galileo ... gibt aber bestimmt auch noch bessere, O'Reilly etc.)!
                Ansonsten: Vom Lesen alleine lernt man das Programmieren NICHT!!! Du mußt damit arbeiten, Dich vorm PC "festfressen" und verschiedene Beispiele selbstständig erarbeiten (z.B. Captcha, Suchmaschine, Formular, Gästebuch, Chat, Wer wird Millionär, Login/Logout, Speicherung und Ausgabe von DB-Daten /eigene DB-Klasse usw.). Befasse Dich mit dem php-manual und schaue Dir die ganzen Funktionn an, die PHP bietet (String, DB, Datei, Array, ...). Arbeite mit regulären Ausdrücken, versuche mit Schleifen bstimmte Ausgaben zu erzielen (z.B. eine Tabelle auszugeben, wo die einzelnen Zeilen die Farbe wechseln (Modulo) ...! Und benutze erst einmal einen Editor wie z.B. Notepad++ ohne wesentliche Syntax-Erweiterung ... dann wird sich der Nebel langsam lichten!

                Gruß php_fussel

                Kommentar


                • #23
                  Danke für die Hilfe!

                  Also ich meinte jetzt eher Beispiele zur objektorientierten Programmierung, Beispiele für Klassen usw.
                  Hab mir das Tutorial von Peter Kropff schon durchgelesen, aber ich bräuchte noch einiges an Praxis.

                  Kommentar


                  • #24
                    Einfach mal googlen, gerade im PHP-Umfeld gibt es da tonnenweise Tutorials und co.

                    Kommentar

                    Lädt...
                    X