Sep 17

OOP (Objekt orientierte Programmierung) PHP

Tag: EntwicklungPhoscur @ 14:03

Seit PHP4 ist es möglich PHP OO zu programmieren. Mit PHP5 wurde das stark ausgebaut, aber bisher habe ich noch kein OS (Open Source) Projekt gesehn, in dem das wirklich verwendet wird, dabei ist das doch nun schon älter… PHP geht schon in Richtung PHP6…

Ich habe mich sofort für OOP begeistern können, als ich es kennenlernte, auch wenn mir das nicht leichter fällt als prozedural (das ist der andere PHP Stil den quasi alle praktizieren) zu programmieren.

Yeah, PHP OOP ist supertoll, das muss ich ab jetzt umbedingt immer verwenden!
→ Nein! Man muss eindeutig abwiegen, ob man etwas OO programmiert, den bei PHP geht dabei Performance verloren, denn das kompliieren dauert länger.

Zum Preis von einem bischen Performance bekommt man dafür:

  • Übersichtlichkeit / Lesbarkeit
  • Darstellung von abstrakten und realen Dingen
  • Erweiterbarkeit
  • Wiederverwendbarkeit
  • Kapselung
  • und somit Effizienz

Und diese Liste ist noch lang nicht vollständig.

Das hat mich letztlich überzeugt. Ich bin dabei das Herzstück („Phlame Engine“) für UGamela in OOP zu schreiben. Dabei werde ich zum Beispiel Planeten und Flotten in Models abbilden. Das Ergebnis gibt den Moddern, die hoffentlich angespornt sind und viele Ideen haben, einfache Möglichkeiten mit den Daten umzugehen, wahrscheinlich ohne selbst Ahnung von MySQL oder Sessions zu haben.

Ihr könnt ich somit schon auf die PHP OOP Pfeilchen „->“ freuen xD

8 Kommentare zu “OOP (Objekt orientierte Programmierung) PHP”

  1. gianluca311 schrieb:

    Jaja! Ich mache gerade auch sehr viele Pfeilchen! ($blog->range(1);)
    xD

  2. headshot360 schrieb:

    Ich hab mir das auch mal angeschaut und fand das persönlich total unübersichtlich und extrem komplex. Außerdem ist sowas doch auch sehr Buganfällig, oder versteh ich das alle blos falsch/garnicht??

  3. Phoscur schrieb:

    Hm klar ist es schwieriger, da man, wenn man es richtig macht, für seine Nachfolger programmiert, ansonsten ist es vor allem zuerst gewöhnungsbedürftig, besonders wenn man vorher prozedural programmiert hat.
    In Sachen Bugs ist würde ich sagen ist der OO Stil dem prozeduralen voraus, wegen der Kapselung. Zudem führt bessere Übersicht auch zu weniger Bugs, man behält einfach den Überblick. Bugs sind dann auch schneller behoben!

  4. angdaru schrieb:

    >Ich hab mir das auch mal angeschaut und fand das persönlich total unübersichtlich und extrem komplex.

    wie Phlegma schon geschrieben hat ist das gewöhnungssache. aber sollte man es richtig machen spart man später sehr viel zeit. weiterhin ist es nur so buganfällig wie der programmierer 😉 ein saubere, richtig eingesetzte oop hilft vieles zu vermeiden. wenn du willst such ich dir ein paar beispiele raus

  5. M0F schrieb:

    KK Chef 🙂

  6. renner schrieb:

    > Übersichtlichkeit / Lesbarkeit
    Die Methodenaufrufe allein vielleicht… die Implementierung jedoch nicht.

    > Darstellung von abstrakten und realen Dingen
    Die tollen Beispiel in den Tutorials sind meistens sehr weltfremd
    und haben aktuell nichts mit Webentwicklung im speziellen zu tun.

    > Erweiterbarkeit
    Prozeduraler Code ist nicht erweiterbar?

    > Wiederverwendbarkeit
    Soweit die Theorie… in der Praxis sieht das allerdings anders aus.

    > Kapselung
    Kapselung ist ne feine Sache, nur sieht man strikte Kapselung irgendwie nie.

    > und somit Effizienz
    Effizienz ist das Verhältnis vom Nutzen zu dem Aufwand.
    Ich kann den Nutzen in dem ganzen Aufwand nicht sehen.

  7. Phoscur schrieb:

    Du bist ein Gegner von OOP? Ich möchte nicht mehr davon weg, seit ich das kenne. Prozedurale Programmierung ist einfach nicht für größere Projekte geeignet.

    >> Übersichtlichkeit / Lesbarkeit
    >Die Methodenaufrufe allein vielleicht… die Implementierung jedoch nicht.
    Es geht ja gerade darum, dass man die Implementierung eigentlich gar nicht lesen muss.

    >> Darstellung von abstrakten und realen Dingen
    >Die tollen Beispiel in den Tutorials sind meistens sehr weltfremd und haben aktuell nichts mit Webentwicklung im speziellen zu tun.
    Jup, fürchterlich, wie Design Patterns erklärt werden. Klare Beispiele gibt es nur verdammt selten, aber die Möglichkeiten sind auch sehr zahlreich.

    >> Erweiterbarkeit
    >Prozeduraler Code ist nicht erweiterbar?
    Das habe ich nicht gesagt. Nur würde ich es bei prozeduraler Programmierung niemals zu den positiven Aspekten zählen, da die Erweiterbarkeit doch sehr gering ist.
    > Wiederverwendbarkeit
    > Kapselung
    Erweiterbarkeit und Wiederverwendbarkeit hängen beide an der Kapselung. Wenn diese schlecht ist, dann ist klar warum der Rest auch nicht so gut ist.
    >Effizienz
    Das kommt darauf an was dein Ziel ist. OOP ist effizient, wenn ein sehr variables, flexibles Projekt aufziehst, an dem viele Leute arbeiten.
    Wenn du bloß dein Browsergame schreiben willst, das nichtmal wirklich komplexe Businesslogik hat, dann bist du was Performance (und damit „deine“ Effizienz), Schreibaufwand und Nachdenken wohl besser mit prozeduraler Programmierung bedient.

  8. Philipp schrieb:

    Keep it simple stupid.

Dein Kommentar

Du musst eingelogt sein, um einen Kommentar zu schreiben.