Ankündigung

Einklappen
Keine Ankündigung bisher.

Der Sinn von OOP bei php

Einklappen

Neue Werbung 2019

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

  • Der Sinn von OOP bei php

    Hallo,

    ich wollte mal ne Frage loslassen, die mich schon länger beschäftigt.
    Es geht um oo-programmieren bei php, und in wiefern es wirklich angewandt wird, bzw wie sinnvoll es ist.

    Macht Polymorphie, Kapselung etc bei normalen Anwendungen im Internet Sinn?

    Bisher habe ich es noch nicht gebraucht, und stelle mir auch ne implementierung nicht sinnvoll vor. Ok, wo ich es mir vorstellen könnte wäre vielleicht beim Zugriff auf Schnittstellen (Datenbanken, Erweiterungen...) - da wäre man bei Änderungen sehr dynamisch...

    Ich selbst geh meist hin und benutze Klassen in php nur zur groben strukturierung von Funktionen und um deren Zugehörigkeit zu kapseln.

    Wenn ich z.B. einen newsletter hätte, wäre newsletter.php mein Controller, der erkennt was gemacht werden soll. Dann gäbe es ne Klasse class.newsletter.php, die alle Hauptfunktionalitäten beinhaltet. Oft auftretende, von mehreren Stellen verwendete Funktionen stellen extra Klassen dar, z.B. class.database.php erzeugt eine Verbindung zur Datenbank, hällt diese während dem Script offen und führt befehle aus. usw.

    Da ich schon viel Sachen gecoded habe, bin ich grade dabei ein kleines Framework aufzubauen. Ich möchte das alles optimal implementiert wird und bin jetzt schon länger am lesen bzgl oop und php und habe mich auch über design pattern schlau gemacht.

    Aber irgendw fehlt mir hier bei php die richtige Anwendung von pattern. Wann brauch ich hier schon ma ne factory oder en observer? Habe bisher schon viel mit Communities, Forensystemen und sonstigen Sachen von Grund auf zu tun gehabt, und hab pattern ehrlich gesagt nie vermisst

    Wenn ich was mit Actionsscript2 code macht das alles viel mehr Sinn bezüglich oop. Ich hab dann ne richtige Applikation, bei der das Innenleben tickt, Objekte interagieren und so. Bei php ist die Lauftzeit nur wenige milisekunden.

    Wäre super wenn ihr mal eurer Statement sagen könntet, würde micht echt sehr interessieren.

    gruß marco

  • #2
    Wenn dir allgemein der Sinn von OOP einleuchtet, verstehe ich nicht, warum du ihn bei PHP in Frage stellst.

    Was OOP ist und ob der Einsatz Sinn macht, wird hier alle 2-3 Wochen mal behandelt, einfach mal die Forensuche benutzen

    http://tut.php-q.net/klassen.html
    http://de.wikipedia.org/wiki/Objekto...Programmierung

    Kommentar


    • #3
      Hi Marco.

      Meine Erinnerungen an die Zeit, bevor ich in PHP Webanwendungen nicht oo programmiert hab, fühlen sich ziemlich mühsam an.

      Einen Oberver hab ich noch nie eingesetzt, aber Factories z.B. ziemlich oft. Zum Beispiel lasse ich mir DAOs über eine Factory bauen, die ein Objekt zur Datenbankverbindung kennt und den DAOs mitgibt. Module erzeuge ich über eine Factory und diese setzen das MVC-Pattern um. Registries benutze ich, Singelons hab ich auch schon benutzt (komme aber zur Zeit absolut ohne aus), die Modulschnittstelle in meinem Framework ist sowas, wie eine Fassade, mit Commands hab ich mal rumgespielt (war aber etwas overdosed für meine Zwecke), natürlich Front Controller, Page Controller hab ich auch mal eingesetzt usw.

      Schau dir als krasses Beispiel z.B. mal Drupal an. Funktioniert alles wunderbar ohne Objekte, aber versuch mal im Code nachzuvollziehen, wo welche Informationen stecken oder verfolge auch mal nur den Programmablauf für einen betimmten Request bei einem bestimmten Status. Da wird dir selbst mit einer guten IDE schwindelig.

      Heißt nicht, dass Drupal in oop geschrieben unbedingt weniger komplex wäre (wahrscheinlich eher umgekehrt, denn bei den Funktionen kannst du ja beliebig hin- und herspringen, ohne dir groß einen Kopf machen zu müssen, wo welche Objekte liegen), aber es wäre definitiv leichter nachvollziehbar und könnte sogar Spaß machen, darin was zu verändern.

      Auf der anderen Seite legst du mit einem Framework natürlich auch immer die Strukturen fest und kommst mitunter an Grenzen, wo du in anderem Code einfach eine MySQL-Abfrage ins Template hackst. Hat alles seine Vor- und Nachteile und für Kleinschiss ein Framework zu benutzen/schreiben ist wohl in aller Regel übertrieben.

      Basti

      Kommentar

      Lädt...
      X