PHP,Webserver und die OOP

PHP(OOP) im Bereich der Webentwicklung

  • Ja, programmiere so

    Abstimmungen: 12 80,0%
  • Nein, programmiere nicht so

    Abstimmungen: 3 20,0%

  • Anzahl der Umfrageteilnehmer
    15
S

sw33tlull4by

Guest
Bin letztens mal über ein kleines Problem gestolpert.
Habe es letzten Endes ohne Klassen gelöst,obwohl die Lösung geradezu nach OOP geschriehen hat.
PHP erlaubt ja kein Speichern von Ressourcen, weswegen die Objekte bei jedem Seitenaufruf, neu erstellt werden müssen.
Nun ist meine Frage:
Wer von Euch benutzt PHP und programmiert für die Webentwicklung objektorientiert?
Wann denkt ihr würde es Sinn machen?
Mfg

sw33t
 
Zuletzt bearbeitet:
Da mein MVC-Framework und Mini-MVC (für kleine statische Websites) auf OOP in Verbindung mit Design Patterns aufgebaut ist, lautet die Antwort -Ja.
 
Die Vorteile von OOP sind bei PHP dieselben wie bei allen anderen objektorientierten Programmiersprachen. Gerade wenn Applikationen umfangreicher werden hilft einem OOP den ganzen Code strukturierter und übersichtlicher zu halten. Ich muss mich beispielsweise nicht mehr durch x Zeilen Code kämpfen um einen Fehler nachvollziehen zu können, sondern durch geschicktes Exception-Handling kann ich ihn abfangen und direkt die betreffende Stelle fixen, was in der Regel nur ein paar Zeilen sind.
Zudem kann ich auch Code-Zeilen einsparen, indem ich in einer Klasse bestimmte Eigenschaften und Methoden definiere und diese an ähnliche Klassen vererbe.
Ganz allgemein gesagt, kann man mit OOP bestimmte Aufgaben und Eigenschaften kapseln und diese "Kapsel" überall einbinden und die darin definierten Objekte und Methoden nutzen. Das schafft unglaublich viel Flexibilität und selbst bei einer funktionsbasierten Ablaufsteuerung hat man in der Regel bei komplexeren Projekten mehr overhead als mit klassenbasierter Programmierung.

Als Beispiel:
Ein Arbeitskollege und ich mussten vor kurzem für einen Kunden ein kleines CMS programmieren, das recht modular sein sollte, da er es für verschiedene Anwendungsfälle einsetzen wollte. Einmal sollte es eine Bildergalerie beinhalten, in dem anderen Fall eine Webshop-Komponente usw. Zudem wollte er auch für jeden Fall ein komplett anderes Design, also musste auch noch eine kleine Template-Engine her.
Das alles ohne Klassen zu bewerkstelligen wäre wohl durchaus möglich, allerdings wäre die Applikation wohl träger, nicht wirklich zukunftssicher und wir hätten wohl auch doppelt bis dreimal solange für das Projekt gebraucht.

Wobei ich aber auch sagen muss, dass ich bei kleineren Aufgaben und Skripten durchaus auf Klassen verzichte, da sie natürlich auch einen gewissen Overhead haben, der sich nicht immer rechnet.

Ein weiterer nützlicher Verwendungszweck von OOP in Webapps ist natürlich der Einsatz von fertigen Frameworks, wie es BasicAvid genannt hat.
 
OT

Wieso nutzt man heute noch PHP fuer "groeszere" Projekte wenn man Ruby on Rails benutzen kann?

PHP fuer quick & dirty ok. Aber Ruby bietet kompromisslose OOP Architektur und das Rails gleich eine 1A Entwicklungsumgebung.

*shrug*
 
Weil PHP sehr komfortabel ist, und auch von C/C++-Programmierern problemlos gelesen werden kann. Außerdem ist PHP sehr weit verbreitet...
 
PHP erlaubt ja kein Speichern von Ressourcen, weswegen die Objekte bei jedem Seitenaufruf, neu erstellt werden müssen.
Das ist so nicht ganz richtig.
Du kannst in PHP sehr wohl Objekte (Klasseninstanzen) serialisieren, irgendwo ablegen und später wieder deserialisieren (wiederherstellen).
Es gibt auch viele PHP-Projekte, die mit solchen Cache-Methoden arbeiten (z.B. die Viscacha Forum Software).

Nun ist meine Frage:
Wer von Euch benutzt PHP und programmiert für die Webentwicklung objektorientiert?
Wann denkt ihr würde es Sinn machen?
OOP hat nicht nur was mit Persistenz von Objekten zu tun, sondern vor allem auch viel mit Struktur und Programmfluss.
Ich nutze seit einigen Jahren nur noch Objektorientiertes PHP (seit PHP5 richtig implementiert) (auch wenn ich hauptsächlich auf Java umgestiegen bin), weil ich damit die Möglichkeit habe, ein Problem sehr weit zu abstrahieren und es in kleinen Teilproblemen zu lösen.
Der Nachteil ist allerdings die längere Laufzeit (die Klassen müssen jedesmal wieder neu geladen und geparst werden). Und wenn man nicht sehr strukturiert arbeitet, kann es auch schnell unübersichtlich werden.

mfg, metax.
 
OT

Wieso nutzt man heute noch PHP fuer "groeszere" Projekte wenn man Ruby on Rails benutzen kann?

PHP fuer quick & dirty ok. Aber Ruby bietet kompromisslose OOP Architektur und das Rails gleich eine 1A Entwicklungsumgebung.

*shrug*

Weil Ruby in Verbindung mit Ruby on Rails auch keine eierlegende Wollmilchsau ist, deshalb benutzen sehr viele auch noch PHP für größere Projekte. Man sollte die Sprache nehmen, welche für das Projekt am besten geeignet ist.
 
Lehrreiche Ansichten.
Das die OOP-Variante eher was mit strucktur zu tun hat ist mir klar.
Und das das serialisieren von Objekten innerhalb von PHP moeglich ist und man dieses serialisierte Objekt zB in $_SESSION speichern kann weiss ich(Ich sprach von direktem speichern,a la($_SESSION['myobject'] = new myobject())), es geht mir auch viel mehr um diesen Spagat zwischen Performance, und Strucktur.
Welche Leute sich wie oft für welche Seite entscheiden und was Eure Ansichten dazu sind,da ich mir noch ein paar pro's und con's dazu anhören wollte, damit ich diesbezueglich besser meine Entscheidung fällen kann.

Mfg

sw33t
 
Zuletzt bearbeitet:
Ich bin zwar erst kürzlich auf den OOP-Zug aufgesprungen, aber ich halte es doch für ganz sinnvoll. Bei kleinen Scripten unter 500 Zeilen, bleibe ich aber gerne beim strukturieten Programmieren. Die anderen Argumente bedürfe denke ich, keiner Wiederholung :)

lG

Brabax
 
Zurück
Oben