kostenloser Webspace werbefrei: lima-city


OOP in PHP

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    xi-blog

    xi-blog hat kostenlosen Webspace.

    Hallo,
    PHP 5 besitzt jetzt ja auch OOP. Wie weit ist das denn ausgebaut? Besitzt es alle Möglichkeiten wie C++, d.h. Vererbung, Polymorphismus, Operatorüberladungen ... oder ein einfacheres Klassenkonzept?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. PHP hat in der Version 5 stark mit OOP nachgebessert.
    Es besitzt ein normales Klassenkonzept und vererbung.
    Bei Polymorphismus und Operatorüberladungen bin ich mir nicht sicher.

    http://www.selfphp.info/praxisbuch/praxisbuch.php?group=44

    Gruß, Prog
  4. Mal so ne frage: Wofür braucht man überhaupt in PHP OOP?
    Das ergibt für mich kein Sinn!

    Ich sehe dort nähmlich keine Einsatzmöglichkeiten für OOP

  5. Mal so ne frage: Wofür braucht man überhaupt in PHP OOP?
    Das ergibt für mich kein Sinn!

    Ich sehe dort nähmlich keine Einsatzmöglichkeiten für OOP

    Es gibt nun mal Konzepte, wie nämlich auch die deutsche Rechtschreibung, die manche Sachen vereinfachen.
    Gerade bei großen Projekten ist es sehr sinnvoll, damit man im Team und vor allem auch modular programmieren kann.
  6. o*******r



    Mal so ne frage: Wofür braucht man überhaupt in PHP OOP?
    Das ergibt für mich kein Sinn!

    Ich sehe dort nähmlich keine Einsatzmöglichkeiten für OOP

    Es gibt nun mal Konzepte, wie nämlich auch die deutsche Rechtschreibung, die manche Sachen vereinfachen.
    Gerade bei großen Projekten ist es sehr sinnvoll, damit man im Team und vor allem auch modular programmieren kann.


    Ich würde das 'groß' mit 'sehr groß' ersetzen, bezüglich der Projekte.

    Klar sind bestimmte Dinge mit OOP einfacher zu lösen, aber auf der anderen Seite... Wer managed schon Projekte eben dieser Größenordnung? Wer hat schon ein mehrere Dutzend Mann starkes Team hinter sich, welches koordiniert werden will? Man sollte nicht vergessen, dass man mit prozeduraler Programmierung (bspw.) oftmals schneller zum Ziel kommt, und dass sie, bei geschickter Anwendung (!) nicht minder gut für Teams nutzbar ist, bis zu einer bestimmten Größe.

    Oder anders ausgedrückt: Overhead stinkt. ^^

    GrEetz, olliander
  7. Autor dieses Themas

    xi-blog

    xi-blog hat kostenlosen Webspace.

    Vor allem, wenn man ein Projekt in OOP überarbeten muss, ist das oft ein kompletter Neubeginn. Außerdem muss man viel mehr planen, wenn man etwas in OOP realisieren will.
  8. w******s

    olliander schrieb:
    Ich würde das 'groß' mit 'sehr groß' ersetzen, bezüglich der Projekte.

    Klar sind bestimmte Dinge mit OOP einfacher zu lösen, aber auf der anderen Seite... Wer managed schon Projekte eben dieser Größenordnung? Wer hat schon ein mehrere Dutzend Mann starkes Team hinter sich, welches koordiniert werden will? Man sollte nicht vergessen, dass man mit prozeduraler Programmierung (bspw.) oftmals schneller zum Ziel kommt, und dass sie, bei geschickter Anwendung (!) nicht minder gut für Teams nutzbar ist, bis zu einer bestimmten Größe.

    Oder anders ausgedrückt: Overhead stinkt. ^^

    GrEetz, olliander


    Das seh ich jetzt nicht so. Naturlich ist das für kleine Projekte unsinning, aber wenn man sich (als Einzelperson) an was größeres wagt, sollte man OOP benutzen.
    Bsp1: Man arbeitet an diesem großen Projekt und legt ne Zwangspause ein. So ists wesentlich einfacher wieder mit diesem Projekt anzufangen, da viele Sachen man benutzen kann ohne genau zu wissen, wie man das mal früher programmiert hat. Es ist auch einfacher von der Vorstellung, weil ich z.B. nur wissen muss, dass es dieses Objekt Auto gibt und dass es mit der Anweisung fahren losfährt;)
    Bsp2: Wenn man Dinge nachträglich ändern muss, weil ein Fehler drin steckt, braucht man bei OOP nicht das ganze Programm neu zu erstellen (etwas übertrieben;) ), sondern beschränkt sich z.B auf die falsche Methode..

    Lg
  9. o*******r


    olliander schrieb:
    Ich würde das 'groß' mit 'sehr groß' ersetzen, bezüglich der Projekte.

    Klar sind bestimmte Dinge mit OOP einfacher zu lösen, aber auf der anderen Seite... Wer managed schon Projekte eben dieser Größenordnung? Wer hat schon ein mehrere Dutzend Mann starkes Team hinter sich, welches koordiniert werden will? Man sollte nicht vergessen, dass man mit prozeduraler Programmierung (bspw.) oftmals schneller zum Ziel kommt, und dass sie, bei geschickter Anwendung (!) nicht minder gut für Teams nutzbar ist, bis zu einer bestimmten Größe.

    Oder anders ausgedrückt: Overhead stinkt. ^^

    GrEetz, olliander


    Das seh ich jetzt nicht so. Naturlich ist das für kleine Projekte unsinning, aber wenn man sich (als Einzelperson) an was größeres wagt, sollte man OOP benutzen.
    Bsp1: Man arbeitet an diesem großen Projekt und legt ne Zwangspause ein. So ists wesentlich einfacher wieder mit diesem Projekt anzufangen, da viele Sachen man benutzen kann ohne genau zu wissen, wie man das mal früher programmiert hat. Es ist auch einfacher von der Vorstellung, weil ich z.B. nur wissen muss, dass es dieses Objekt Auto gibt und dass es mit der Anweisung fahren losfährt;)
    Bsp2: Wenn man Dinge nachträglich ändern muss, weil ein Fehler drin steckt, braucht man bei OOP nicht das ganze Programm neu zu erstellen (etwas übertrieben;) ), sondern beschränkt sich z.B auf die falsche Methode..

    Lg



    Zu Bsp. 1: Schöne Theorie, aber spätestens, wenn's zu starker Polymorphie kommt, ist's vorbei mit der schönen Einfachheit ('Hat die parent-Klasse jetzt eigentlich schon eine entsprechende Methode, oder nicht?'). Zudem sollte nicht das Programmierparadigma zu Aufschluss helfen, sondern eine sinnvolle Dokumentation. Meine Meinung. Und wer nicht genau weiß, was er vor ein paar Wochen eigentlich fabriziert hat, sollte lieber nochmal sein Phasenmodell durchspielen. ^^

    Zu Bsp. 2: Ist nicht nur übertrieben, sondern schlichtweg unrealistisch. Modularisierung ist ein eigenes Themengebiet und in keinster Weise von OOP abhängig...

    GrEetz, olliander
  10. Ich meine ich schreibe in meinen Programmen alles in Funktionen und in PHP auch soviel wie möglich.
    Ist das schon OOP?

    Und wofür braucht man überhaupt Klassen in PHP? Ich sehe das keinen sinn?!


    Und das man in OOP sich nach ner Pause schneller einarbeiten kann find ich quatsch.

    Wenn man den Quellcode übersichtlich hält kann man überall reinkommen.
    Hab letztens ein knapp 3/4 Jahr alten knapp 4000 Zeilen langen Spaghetticode gefunden und konnte mich fast gänzlich wieder reinfinden.
  11. d*************d

    Ehrlich gesagt finde ich OOP einfach näher an der Realität. Damit vermittelt es viel besser das normale Verständnis der Umwelt und meiner Ansicht nach erleichtert das vor allem den Einstieg in eine Programmiersprache zumindest für logische Menschen.
    Wer allerdings Lust hat stumpfsinnig einfach nur Prozeduren zu lernen soll das wegen mir aus machen...
  12. t*****b


    Vor allem, wenn man ein Projekt in OOP überarbeten muss, ist das oft ein kompletter Neubeginn. Außerdem muss man viel mehr planen, wenn man etwas in OOP realisieren will.


    Eben genau der Gegenteil ist der Fall! Wenn man auf OOP-basierende Scripte überarbeitet, ist man schneller am Ziel als wenn man prozedural programmiert. Natürlich braucht man mehr Zeit für die Architektur, dann ist das halbe Projekt aber schon umgesetzt und man spart viel Zeit in der entgültigen Umsetzung.

    mergener schrieb:
    Ich meine ich schreibe in meinen Programmen alles in Funktionen und in PHP auch soviel wie möglich.
    Ist das schon OOP?


    Nein.

    mergener schrieb:
    Und wofür braucht man überhaupt Klassen in PHP? Ich sehe das keinen sinn?!


    Dann solltest du dich erst einmal in die Objektorierntierung einarbeiten, dann wirst du schon sehen, dass es Sinn macht ;)

    mergener schrieb:
    Und das man in OOP sich nach ner Pause schneller einarbeiten kann find ich quatsch.

    Wenn man den Quellcode übersichtlich hält kann man überall reinkommen.
    Hab letztens ein knapp 3/4 Jahr alten knapp 4000 Zeilen langen Spaghetticode gefunden und konnte mich fast gänzlich wieder reinfinden.


    Ich denke, es kommt hierbei weniger darauf an, wie das Script programmiert wurde, sondern viel mehr, wie übersichtlich man das ganze hält. Schreibt man ein paar Klassen quick&dirty, hat man genauso wenig Überblick als wenn man ohne Klassen quick&dirty programmiert. Natürlich muss man sich erst in das Konzept der OOP einarbeiten, denn wenn man dieses nicht versteht, macht es natürlich keinen Sinn Scripte lesen zu wollen, die dies verwenden.

    Das Hauptproblem ist meiner Meinung nach, dass Klassen etc. anfangs eher verwirrend sind und deshalb viele die Finger davon lassen. Wenn man damit nicht zurecht kommt, ist es natürlich klar, dass man schneller ohne OOP im Programmieren ist

    olliander schrieb:

    Das seh ich jetzt nicht so. Naturlich ist das für kleine Projekte unsinning, aber wenn man sich (als Einzelperson) an was größeres wagt, sollte man OOP benutzen.
    Bsp1: Man arbeitet an diesem großen Projekt und legt ne Zwangspause ein. So ists wesentlich einfacher wieder mit diesem Projekt anzufangen, da viele Sachen man benutzen kann ohne genau zu wissen, wie man das mal früher programmiert hat. Es ist auch einfacher von der Vorstellung, weil ich z.B. nur wissen muss, dass es dieses Objekt Auto gibt und dass es mit der Anweisung fahren losfährt;)
    Bsp2: Wenn man Dinge nachträglich ändern muss, weil ein Fehler drin steckt, braucht man bei OOP nicht das ganze Programm neu zu erstellen (etwas übertrieben;) ), sondern beschränkt sich z.B auf die falsche Methode..

    Lg



    Zu Bsp. 1: Schöne Theorie, aber spätestens, wenn's zu starker Polymorphie kommt, ist's vorbei mit der schönen Einfachheit ('Hat die parent-Klasse jetzt eigentlich schon eine entsprechende Methode, oder nicht?'). Zudem sollte nicht das Programmierparadigma zu Aufschluss helfen, sondern eine sinnvolle Dokumentation. Meine Meinung. Und wer nicht genau weiß, was er vor ein paar Wochen eigentlich fabriziert hat, sollte lieber nochmal sein Phasenmodell durchspielen. ^^

    Zu Bsp. 2: Ist nicht nur übertrieben, sondern schlichtweg unrealistisch. Modularisierung ist ein eigenes Themengebiet und in keinster Weise von OOP abhängig...

    GrEetz, olliander


    Re:Re:Bsp.1:
    Deshalb steckt man in der OOP auch viel Zeit in die Architektur, statt drauf los zu programmieren. Dann passiert das in der Regel nicht.

    Re:Re:Bsp.2:
    Natürlich kannst du irgendwie über zig Ecken deinen Code modular aufbauen, jedoch kannst du nur unter Verwendung des Klassenmodelles ohne Umwege auf Eigenschaften, Funktionen, etc. von anderen Modulen zugreifen, was ohne Verwendung der OOP eher schwieriger und eher schlecht als recht funktioniert. Stichwort Skalierbarkeit.

    Natürlich ist es jedem selbst überlassen, wie er programmiert, es geht ja viel mehr darum, seine Ziele zu erreichen und da ist es meistens egal wie ;) Der eine kommt so zurecht, der andere anders und ich würde niemals jemandem vorschreiben, OOP programmieren zu müssen. Jedoch kommt es vor, dass man vorhandene Scripte erweitern will/muss und die meisten größten Projekte (zB PHPBB, Typo3, Joomla, Drupal, ...) sind eben objektorientiert aufgebaut und dann sollte man schon wissen, wie das funktioniert, denn nur so kann man bestehende Scripte optimal und individuell erweitern.
  13. Ich habe beispielsweise eine Klasse Diagramm mit Unterklassen und sehr vielen verschiedenen Methoden, wie z.B. SetDiagrammTitel($titel)
    SetYbeginn($ybeginn)
    SetYende($yende)

    usw.
    Die Klasse kann mit sehr vielen verschiedenen Eingaben umgehen, und das ganz ohne if Anweisungen.
    So kann ich z.B. Wenn ich ein Diagramm haben will einfach die Klasse inkludieren und das Diagramm entsprechend meiner gegebenen input Daten erstellen.

    Ohne OOP wäre das viel viel aufwendiger und unübersichtlicher.

    Gruß, Prog
  14. trueweb schrieb:
    mergener schrieb:
    Ich meine ich schreibe in meinen Programmen alles in Funktionen und in PHP auch soviel wie möglich.
    Ist das schon OOP?


    Nein.

    Gut, mich hat irgendwie dieses Modulardstatement von Olli irritiert.

    trueweb schrieb:
    mergener schrieb:
    Und wofür braucht man überhaupt Klassen in PHP? Ich sehe das keinen sinn?!


    Dann solltest du dich erst einmal in die Objektorierntierung einarbeiten, dann wirst du schon sehen, dass es Sinn macht ;)


    Entschuldige dich schocken zu müssen, aber bei Client-Anwendungen ist mir klar wie OOP Funktioniert und welche Vorteile Klassen und co haben.

    Nur eben nicht bei PHP.
    Und mir wurde bis jetzt noch nicht gesagt welche Vorteile das hat. Ausser für Große Projekte.
    Wobei ich immernoch nicht weiss wo man Klassen eigentlich gebrauchen kann bei PHP.



    dragons4thchild schrieb:
    Ehrlich gesagt finde ich OOP einfach näher an der Realität. Damit vermittelt es viel besser das normale Verständnis der Umwelt und meiner Ansicht nach erleichtert das vor allem den Einstieg in eine Programmiersprache zumindest für logische Menschen.
    Wer allerdings Lust hat stumpfsinnig einfach nur Prozeduren zu lernen soll das wegen mir aus machen...

    Ah...
    Egal was du nimmst, nimm weniger davon.
    Oder mehr.
    Aber egal was, gib mir etwas davon ab.

    Es geht hier um Programmiersprachen und die sind alle gleich weit von der Realität entfernt.


    EDIT: DAMNIT! Scheiss quote-Fehler!


    Beitrag geändert: 28.9.2008 16:57:16 von mergener
  15. o*******r


    Natürlich ist es jedem selbst überlassen, wie er programmiert, es geht ja viel mehr darum, seine Ziele zu erreichen und da ist es meistens egal wie ;) Der eine kommt so zurecht, der andere anders und ich würde niemals jemandem vorschreiben, OOP programmieren zu müssen. Jedoch kommt es vor, dass man vorhandene Scripte erweitern will/muss und die meisten größten Projekte (zB PHPBB, Typo3, Joomla, Drupal, ...) sind eben objektorientiert aufgebaut und dann sollte man schon wissen, wie das funktioniert, denn nur so kann man bestehende Scripte optimal und individuell erweitern.


    Da stimme ich Dir zu, man sollte wissen, was man tut. Und da ich in der Regel (was Programmierung angeht) sehr wohl weiß, was ich tue, ist mir OOP bisher fern geblieben. Was nicht heißt, dass ich mich nicht trotzdem dafür interessiere. Ähnlich verhält es sich mit MVC. ;)

    War jetzt nur ein Bsp. Grundsätzlich ist es mir sehr wichtig, dass man wie gesagt genau überlegt, was man tut. Welche Mittel sind sinnvoll, um das Ziel zu erreichen? Etc... Und nicht blindlings und mit lachendem Gesicht in die Kreissäge rennt, nur weil etwas besonders hip und im Trend ist. Heißt ja nicht, dass ich grundsätzlich etwas gegen OOP habe. ^^

    GrEetz, olliander

    Beitrag geändert: 28.9.2008 17:39:10 von olliander
  16. t*****b

    Die Ursache für die Meinungsverschiedenheiten in Bezug auf OOP unter PHP liegen darin, dass PHP sehr sehr einfach ist, vor allem für Anfänger. Das heißt natürlich nicht, dass man unter PHP nicht professionell entwickeln kann, nur machen das viele eben auch nicht. Ist ja auch nicht weiter schlimm, jeder so wie es ihm beliebt und bei den meisten Hobbyprojekten/privaten Websites kommt es auch nicht auf die Skalierbarkeit, Performance etc. an. Ich jedenfalls habe erst Programme entwickelt bevor ich zu PHP und anderen serverseitigen Sciptsprachen kam (und geblieben bin ;) ), die Objektorientierung kenne ich aus C++ und Object Pascal und als ich das gelernt habe, habe ich mich auf gut Deutsch angekotzt, wenn man es dann aber gewohnt ist, kann man sehr schnell große Programme schreiben und das mit bis zur Hälfte weniger Code als wenn man nicht oo programmiert. Wie gesagt: jedem das seine, hauptsache man ereicht sein Ziel. Meinen Kunden ist es auch schnuppe wie ich programmiere, hauptsache es funktioniert und für ein einfaches Mailformular verwende auch ich sicherlich keine Klassen ;)

  17. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!