Php 100% Oop

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Sojus, 06.03.2007.

  1. Sojus

    Sojus Thread Starter MacUser Mitglied

    Beiträge:
    143
    Zustimmungen:
    3
    MacUser seit:
    30.05.2006
    Huhu

    Ich wollte mal so drauf los fragen was ihr von PHP und OOP haltet. Ich bin im mom an einem php<->datenbank Tool und versuche alles so oop wie möglich zu machen.
    Bsp. //es gib eine User klasse
    $user = new User(12,$oracle);
    print($user->getName());

    Ein Benutzer besteht also aus einem Objekt, das mit der ID des Users alle Daten aus der DB holt. Das geht so weit, dass ich am schluss nur noch eine index.php habe, in der steht

    $main = new Main($oracle);
    $main->display();

    Mein Chef war davon aber nicht so begeistert. Er meint, PHP werde nur Sequenziel programmiert. In Klassen kommen nur statische Funktionen..etc.

    Ich komme aus der Java Welt und habe davon eigentlich nicht so ahnung.

    Wie seht ihr das?

    mfg
     
  2. koli.bri

    koli.bri Gast

    100% OOP on PHP halte ich für übertrieben.

    Ich benutz es da, wo ich eine Arbeitserleicheterrung sehe:
    Ausgeben von Listen, (Die Liste ist ein Objekt, in das Listenpunkte als Unterobjekte eingefügt werden), ausgeben vom HTML-Header (CSS und JavaScriptDateien/Variablen werden dann mittels einer Methode dynamisch eingefügt), oder halt anderes, wos sinn macht.

    Die Mischung, bzw, die Möglichkeit der Mischung machts :)

    Aber wie im richtigen Leben, extreme sind nur selten ideal...

    gruß
    Lukas
     
  3. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.045
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    PHP hat Objekte schon sehr früh integriert, wenn auch etwas eigenwillig! Man kann damit sehr schön eine Kapselung von DB-Tabellen realisieren. Gerade um das Mitschleifen von 100 Hidden-Variablen in Web-Applikationen zu vermeiden, ist es sehr hilfreich ein $produkt($pord_id), einen $kunde($kdnr) oder eine $rechnung($rechnr) zu haben.

    Java Programmierer leiden etwas unter dem Objektzwang. Ist etwas kein Objekt, haben sie immer ein schlechtes Gefühl dabei! PHP erlaubt den pragmatischen Dualismus. Ob es da Sinn macht ein Programm so weit zu abstrahieren:

    Code:
    $main = new Main($oracle);
    $main->display();
    
    muß jeder selbst wissen. Auch mir wär das too much!
     
  4. LaForce

    LaForce MacUser Mitglied

    Beiträge:
    809
    Zustimmungen:
    3
    MacUser seit:
    17.04.2004
    Dein Chef scheint sich ja mächtig gut auszukennen :D

    Dein Ansatz ist durchaus ok, und auch wenn PHP sicher nicht 100% OOP ist, arbeiten viele professionelle Anbieter mit OO-php. (Man sollte evtl. aufpassen, dass man es nicht gleich übertreibt). Und wenn Du den Rest Deiner Entwicklung auch noch OOP haben willst, kannst Du ja auf dem Server noch einen Tomcat laufen lassen (oder einen anderen JAVA-Server), der z.B. Deine DB-Objekte persistent hält.
     
  5. minimal

    minimal MacUser Mitglied

    Beiträge:
    558
    Zustimmungen:
    3
    MacUser seit:
    22.12.2003
    das objektorientierte konzept von php kann und wird durch das unterliegende funktionale konzept immer wieder ausgehebelt. man denkt und arbeitet in dem bereich scheinbar noch zu skript basiert.
     
  6. Darii

    Darii MacUser Mitglied

    Beiträge:
    2.066
    Zustimmungen:
    110
    MacUser seit:
    24.02.2004
    Das ist mal gelinde gesagt unsinn, da kann man gleich auf Klassen verzichent und die Funktioen mittels "schlüsselwort_" voneinander abtrennen.

    Deine User-Klasse ist sicherlich mehr als sinnvoll. Ob deine Hauptklasse sinnvoll ist, ist denke ich Geschmackssache :) Auf jeden Fall solltest du beachten, dass in php4 Objekte nicht als Referenzen übergeben, sondern kopiert werden.

    Dann solltest du an dem Quellcode des neusten [DLMURL="http://beta.woltlab.de"]wbb[/DLMURL] Gefallen finden. :) die index.php die alles handelt besteht aus zwei Zeilen Code. ;)
     
  7. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.045
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    Nee Nee, das hat mit Funktionen nichts zu tun! Funktionen sind nicht böse ;)

    Das hat damit zu tun, daß in PHP-Objekte aus typenlosen skalaren Variablen abgebildet werden. Im Grunde agieren Objekte daher so, als seien es komplexere Hash-Gebilde - ja sie lassen sich sogar wie Arrays behandeln. Man kann auch ein Objekt definieren und dann on the fly Instanzvariablen hinzufügen :D

    Sowas geht in strengen OO-Sprachen nicht zwingend wirklich gut. PHP ist da ein bißchen wie Perl, was Variablen angeht. Machen kann man fast Alles, nur sollte man nicht alles tun was man machen kann!
     
Die Seite wird geladen...