Php 100% Oop

Sojus

Sojus

Aktives Mitglied
Thread Starter
Dabei seit
30.05.2006
Beiträge
144
Reaktionspunkte
3
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
 
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
 
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!
 
Mein Chef war davon aber nicht so begeistert. Er meint, PHP werde nur Sequenziel programmiert. In Klassen kommen nur statische Funktionen..etc.

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.
 
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.
 
Mein Chef war davon aber nicht so begeistert. Er meint, PHP werde nur Sequenziel programmiert. In Klassen kommen nur statische Funktionen..etc.
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.

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

Wie seht ihr das?
Dann solltest du an dem Quellcode des neusten wbb Gefallen finden. :) die index.php die alles handelt besteht aus zwei Zeilen Code. ;)
 
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.

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!
 
Zurück
Oben Unten