Objektorientierte Programmierung mit PHP

Hallo allerseits,

gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
OO-Programmierung mit PHP? Oder kann mir jemand ein brauchbares Buch
hierzu empfehlen?

Bislang habe ich mich - mehr oder weniger erfolgreich - immer gerne vor
der objektorientierten Programmierung gedrückt. Ich habe zwar ein paar
Schulungen in dieser Richtung hinter mir und auch einige, kleinere
Projekte in C++ (ging so) und JAVA (auweia!) durchgezogen, bin aber
letztendlich doch immer wieder bei der strukturierten Programmierung
gelandet (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich).

Gruß. Claus
Claus Reibenstein [ Di, 31 Juli 2007 12:08 ] [ ID #1783115 ]

Re: Objektorientierte Programmierung mit PHP

Claus Reibenstein schrieb:
> Hallo allerseits,
>
> gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
> OO-Programmierung mit PHP? Oder kann mir jemand ein brauchbares Buch
> hierzu empfehlen?
>
> Bislang habe ich mich - mehr oder weniger erfolgreich - immer gerne vor
> der objektorientierten Programmierung gedrückt. Ich habe zwar ein paar
> Schulungen in dieser Richtung hinter mir und auch einige, kleinere
> Projekte in C++ (ging so) und JAVA (auweia!) durchgezogen, bin aber
> letztendlich doch immer wieder bei der strukturierten Programmierung
> gelandet (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich).
>
> Gruß. Claus

Hallo Claus,
Als Einstieg kannst du ja mal im Manuel nachlesen
http://www.php.net/manual/de/language.oop5.php.
Weiterführend wäre z.B "Professionelle Softwareentwicklung mit PHP 5"
von Sebastian Bergmann
(http://www.professionelle-softwareentwicklung-mit-php5.de/e rste_auflage/).
Wenn es auch sprachunabhängig sein darf könnte dich das hier auch noch
interessieren: "Praxisbuch Objektorientierung" von Bernhard Lahres,
Gregor Raýman (http://www.galileocomputing.de/openbook/oo/)

mfg
Andreas
Andreas.Eberhoefer [ Di, 31 Juli 2007 12:29 ] [ ID #1783116 ]

Re: Objektorientierte Programmierung mit PHP

Andreas Eberhöfer schrieb:

> Claus Reibenstein schrieb:
>
>> gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
>> OO-Programmierung mit PHP? Oder kann mir jemand ein brauchbares Buch
>> hierzu empfehlen?
>
> Als Einstieg kannst du ja mal im Manuel nachlesen
> http://www.php.net/manual/de/language.oop5.php.

Auf das Naheliegendste kommt man immer zuletzt ...

> Weiterführend wäre z.B "Professionelle Softwareentwicklung mit PHP 5"
> von Sebastian Bergmann
> (http://www.professionelle-softwareentwicklung-mit-php5.de/e rste_auflage/).
> Wenn es auch sprachunabhängig sein darf könnte dich das hier auch noch
> interessieren: "Praxisbuch Objektorientierung" von Bernhard Lahres,
> Gregor Raýman (http://www.galileocomputing.de/openbook/oo/)

Die beiden lade ich mir gerade runter und werde sie mir dann mal anschauen.

Danke für die Infos.

Gruß. Claus
Claus Reibenstein [ Di, 31 Juli 2007 13:35 ] [ ID #1783118 ]

Re: Objektorientierte Programmierung mit PHP

Claus outete sich:

> (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich)

Dass Du nach 30 Jahren FORTRAN überhaupt programmieren kannst, finde ich
noch verwunderlicher.

Martin
Martin Lemke [ Di, 31 Juli 2007 14:39 ] [ ID #1783122 ]

Re: Objektorientierte Programmierung mit PHP

Martin Lemke schrieb:
> Claus outete sich:
>
>> (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich)
>
> Dass Du nach 30 Jahren FORTRAN überhaupt programmieren kannst, finde ich
> noch verwunderlicher.

Warum?

Gruß,
Torsten
thorny [ Di, 31 Juli 2007 14:42 ] [ ID #1783123 ]

Re: Objektorientierte Programmierung mit PHP

Am Tue, 31 Jul 2007 13:35:54 +0200 schrieb Claus Reibenstein:

> Die beiden lade ich mir gerade runter und werde sie mir dann mal anschauen.

Ich persönlich schwöre da lieber auf Bücher.

Das PHP 5 Kochbuch aus dem O'Reilly-Verlag (Paperback, 766 Seiten, 46 EUR.)
ist ohnehin eine gute Quelle für Lösungsansätze aller Art. Dort ist auch
ein Kapitel (S. 155-191) zu diesem Thema enthalten. Der Vorteil dieses
Buches ist, dass es ausgesprochen praxisorientiert ist.

Wer schon programmieren kann, fängt ja nicht bei null an. Da kann man sich
theoretische Ergüsse weitgehend ersparen.

Schau Dir das Buch mal im Buchhandel an.

Martin
Martin Lemke [ Di, 31 Juli 2007 14:54 ] [ ID #1783125 ]

Re: Objektorientierte Programmierung mit PHP

Martin Lemke schrieb:

> Claus outete sich:
>
>> (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich)
>
> Dass Du nach 30 Jahren FORTRAN überhaupt programmieren kannst, finde ich
> noch verwunderlicher.

Deine Bemerkung verstehe ich nicht. Bitte erläutere sie mir.

Gruß. Claus
Claus Reibenstein [ Di, 31 Juli 2007 14:54 ] [ ID #1783126 ]

Re: Objektorientierte Programmierung mit PHP

Am Tue, 31 Jul 2007 14:54:03 +0200 schrieb Claus Reibenstein:

> Deine Bemerkung verstehe ich nicht. Bitte erläutere sie mir.

Es war ein Witz. Den kann man verstehen oder auch nicht. Aber nicht
erläutern.

Martin
Martin Lemke [ Di, 31 Juli 2007 14:58 ] [ ID #1783128 ]

Re: Objektorientierte Programmierung mit PHP

Claus Reibenstein schrieb:

> gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
> OO-Programmierung mit PHP? Oder kann mir jemand ein brauchbares Buch
> hierzu empfehlen?
>
> Bislang habe ich mich - mehr oder weniger erfolgreich - immer gerne vor
> der objektorientierten Programmierung gedrückt. Ich habe zwar ein paar
> Schulungen in dieser Richtung hinter mir und auch einige, kleinere
> Projekte in C++ (ging so) und JAVA (auweia!) durchgezogen, bin aber
> letztendlich doch immer wieder bei der strukturierten Programmierung
> gelandet (nach 30 Jahren FORTRAN und C wohl nicht weiter verwunderlich).

Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen, sicheren, Weg
in die C(++) - OOP gibt, wenn man C kann und das Windows-API kennt: die MFC.

Wenn du einfach nur kleine MFC-Anwendungen schreibst, z.B. Dialogboxen, dann
bist du gezwungen, OOP verstehen zu lernen und kannst dich allein über die Hilfe-Funktion
mit allem erforderlichen Wissen vertraut machen - und zwar schnell und praktisch, by doing!

Das Lesen irgendeines OOP-Buches oder Tutorials ist dann umso unterhaltsamer...
Adriane Meier [ Di, 31 Juli 2007 15:05 ] [ ID #1783129 ]

Re: Objektorientierte Programmierung mit PHP

Martin Lemke schrieb:
> Am Tue, 31 Jul 2007 13:35:54 +0200 schrieb Claus Reibenstein:
>
>> Die beiden lade ich mir gerade runter und werde sie mir dann mal anschauen.
>
> Ich persönlich schwöre da lieber auf Bücher.
Wenn ein Buch als Volltext im Internet vorhanden ist, ist es kein Buch
mehr? Wenn du dir die Mühe gemacht hättest, dir die Quellen anzuschauen,
würdest du wissen das man die zwei auch im Handel kaufen kann ;).

>
> Das PHP 5 Kochbuch aus dem O'Reilly-Verlag (Paperback, 766 Seiten, 46 EUR.)
> ist ohnehin eine gute Quelle für Lösungsansätze aller Art. Dort ist auch
> ein Kapitel (S. 155-191) zu diesem Thema enthalten. Der Vorteil dieses
> Buches ist, dass es ausgesprochen praxisorientiert ist.
Ich persönlich halte nicht viel von der O'Reilly Kochbuchreihe. Manche
Lösungsansätze halte ich noch nicht mal für den besten Weg (Ich spreche
von der Reihe im Allgemeinen, das PHP-Kochbuch kenn ich nicht gut genug).

>
> Wer schon programmieren kann, fängt ja nicht bei null an. Da kann man sich
> theoretische Ergüsse weitgehend ersparen.
Das genau ist das Problem bei diesen Kochbüchern. Die Gefahr, dass man
versucht ein Beispiel auf biegen und brechen auf seine Anforderung
anzupassen und dabei am Ende grausamen Code bekommt ist recht hoch. Wenn
man die Sprache kennt, weis was OOP ist und einem Designpattern ein
Begriff ist, kommt man meiner Meinung nach auf bessere Ergebnisse.
Ich glaube, dass was diese Kochbücher versuchen auszugleichen ist
Erfahrung, aber die kann man IMHO nicht in 766 Seiten pressen. Als
Spickzettel mögen sie ja ganz nett sein, aber dafür finde ich 46 € doch
etwas viel.

mfg
Andreas
Andreas.Eberhoefer [ Di, 31 Juli 2007 15:40 ] [ ID #1783131 ]

Re: Objektorientierte Programmierung mit PHP

Adriane Meier schrieb:

> Claus Reibenstein schrieb:
>
>> gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
>> OO-Programmierung mit PHP? [...]
>
> Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen, sicheren, Weg
> in die C(++) - OOP gibt, wenn man C kann und das Windows-API kennt: die MFC.

Ich programmiere nicht unter Windows. Windows dient mir nur als
Startplattform für Spiele, Anwendungsprogramme, virtuelle Maschinen und
Entwicklungsumgebungen.

Es geht mir auch weniger darum, OOP allgemein zu lernen (die Grundlagen
sind mir schon klar), sondern speziell OOP unter PHP anzuwenden (s.o.).

Gruß. Claus
Claus Reibenstein [ Di, 31 Juli 2007 16:05 ] [ ID #1783132 ]

Re: Objektorientierte Programmierung mit PHP

Claus Reibenstein wrote:
> Adriane Meier schrieb:
>
>> Claus Reibenstein schrieb:
>>
>>> gibt es irgendwo im Netz ein gutes Tutorial zu Einführung in die
>>> OO-Programmierung mit PHP? [...]
>> Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen, sicheren, Weg
>> in die C(++) - OOP gibt, wenn man C kann und das Windows-API kennt: die MFC.
>
> Ich programmiere nicht unter Windows. Windows dient mir nur als
> Startplattform für Spiele, Anwendungsprogramme, virtuelle Maschinen und
> Entwicklungsumgebungen.
>
> Es geht mir auch weniger darum, OOP allgemein zu lernen (die Grundlagen
> sind mir schon klar), sondern speziell OOP unter PHP anzuwenden (s.o.).

Ich mag den Learning-by-doing-Ansatz, und bin vielleicht etwas weiter
als Claus... was mir half, war, mit eine theoretische Anwendung
auszudenken und in Diagrammform (UML oder Bleistift und Papier) zu
planen. Welche Klassen brauchst Du, mit welchen Eigenschaften und
Methoden, was sollte ein Singleton sein, was eine Factory? Das führt
Dich schon zu PHP-spezifischen Detailfragen, z.B. wie funktioniert
Vererbung in PHP, mit welchen Eigenarten und Einschränkungen? Viele gute
Tips stehen in den Kommentaren zum Manual. Dann kannst Du die
Implementierung in PHP skizzieren, ohne die komplette Anwendung
tatsächlich zu schreiben. Wenn einzelne Punkte nicht klar sind, kannst
Du ein paar grob vereinfachte Klassen schreiben und damit ein einzelnes
Problem testen. Wenn Du irgendwann feststellst, daß dein Konzept nichts
taugt, Du z.B. Datenhaltung und Ausgabe stärker trennen möchtest, ist
das schnell getan. Das ist sicher keine orthodoxe Lernmethode, aber ich
fand's recht praxisorientiert.

Jörg
j.ellermann [ Mi, 01 August 2007 02:40 ] [ ID #1784093 ]

Re: Objektorientierte Programmierung mit PHP

> Ich mag den Learning-by-doing-Ansatz, und bin vielleicht etwas weiter
> als Claus... was mir half, war, mit eine theoretische Anwendung
> auszudenken und in Diagrammform (UML oder Bleistift und Papier) zu
> planen. Welche Klassen brauchst Du, mit welchen Eigenschaften und
> Methoden, was sollte ein Singleton sein, was eine Factory? Das führt
> Dich schon zu PHP-spezifischen Detailfragen, z.B. wie funktioniert
> Vererbung in PHP, mit welchen Eigenarten und Einschränkungen? Viele gute
> Tips stehen in den Kommentaren zum Manual. Dann kannst Du die
> Implementierung in PHP skizzieren, ohne die komplette Anwendung
> tatsächlich zu schreiben. Wenn einzelne Punkte nicht klar sind, kannst
> Du ein paar grob vereinfachte Klassen schreiben und damit ein einzelnes
> Problem testen. Wenn Du irgendwann feststellst, daß dein Konzept nichts
> taugt, Du z.B. Datenhaltung und Ausgabe stärker trennen möchtest, ist
> das schnell getan. Das ist sicher keine orthodoxe Lernmethode, aber ich
> fand's recht praxisorientiert.

Als Ergänzung dazu kann ich als Thema die gd-Bibliothek empfehlen - die
bettelt geradezu darum, dass man einen OO-Wrapper für schreibt. Es sei
denn, man mag es, immer Variablen durchzureichen.

Ansatzpunkte:
*Objekt, dass das Bild repräsentiert
*eine Klasse "Koordinate", die man den Methoden übergibt anstelle der
einzelnen x/y-Werte
*man kann einer Methode des Bilds eine Sammlung von Koordinaten geben
und die zeichnet das dann als Pfad; es bietet sich hier z. b. an, eine
abstrakte Klasse zu schreiben, von der einzelne Formen abgeleitet werden
*Klasse für Farbwerte; wäre möglich über Vererbung verschiedene
Farbmodelle zu implementieren
*man kann noch Transformation, Rotation, Skalierung hinzufügen, die dann
transparent von dem Bild-Objekt gehandhabt werden

Alles in allem finde ich das ein recht gutes Beispiel für grundlegende
OOP-Techniken.

--
Mein Zeugs:
http://www.hadanite-marasek.de/classes.php
http://www.objektivsuche.de/
Hadanite Marasek [ Mi, 01 August 2007 17:58 ] [ ID #1784098 ]

Re: Objektorientierte Programmierung mit PHP

Am Tue, 31 Jul 2007 15:40:17 +0200 schrieb Andreas Eberhöfer:

> Ich persönlich halte nicht viel von der O'Reilly Kochbuchreihe.

Deshalb empfehle ich ja auch, sich das Buch vorher anzusehen. Auch Bücher
zu technischen Themen sind Geschmackssache. Auf den blauen Dunst würde ich
kein Buch kaufen.

Martin
Martin Lemke [ Mi, 01 August 2007 23:58 ] [ ID #1784105 ]

Re: Objektorientierte Programmierung mit PHP

Adriane Meier schrieb:

> Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen,
> sicheren, Weg in die C(++) - OOP gibt, wenn man C kann und das
> Windows-API kennt: die MFC.

Ausgerechnet die MFC zu empfehlen halte ich für ausgesprochen schlecht.
Da MFC wirklich eins der schlechtesten Dinge ist die M$ jemals
hervorgebracht hat. NET/MONO oder wxWidgets währe da wohl besser.

> Wenn du einfach nur kleine MFC-Anwendungen schreibst, z.B.
> Dialogboxen, dann bist du gezwungen, OOP verstehen zu lernen und
> kannst dich allein über die Hilfe-Funktion mit allem erforderlichen
> Wissen vertraut machen - und zwar schnell und praktisch, by doing!

Allerdings muss man dann auch noch GUI/OS zeug lernen, was der OP
eventuell gar nicht möchte.

> Das Lesen irgendeines OOP-Buches oder Tutorials ist dann umso
> unterhaltsamer...

Gute Bücher zum lernen von OOP sind IMHO die Von Kopf bis Fuss-Dinger:

* Objektorientierte Analyse & Design von Kopf bis Fuß
ISBN: 978-3897214958

OOP? Wenn man OOP macht sollte man über Entwurfsmuster Bescheid wissen!

* Design Patterns
ISBN: 978-0201633610

* Entwurfsmuster von Kopf bis Fuß
ISBN: 978-3897214217
Harald Stowasser [ Do, 02 August 2007 15:09 ] [ ID #1785337 ]

Re: Objektorientierte Programmierung mit PHP

Harald Stowasser schrieb:

>> Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen,
>> sicheren, Weg in die C(++) - OOP gibt, wenn man C kann und das
>> Windows-API kennt: die MFC.
>
> Ausgerechnet die MFC zu empfehlen halte ich für ausgesprochen schlecht.
> Da MFC wirklich eins der schlechtesten Dinge ist die M$ jemals

Falsch, nicht die MFC sind irgendwie schlecht inbezug auf OOP oder C++,
sondern das (darunterliegende) Windows-API wird gern kritisiert - es ist
aber gerade z.B. auch wegen der Allgegenwärtigkeit der Callback-Funktionen
im Win-API ein perfektes Vehikel für den praktischen Einstieg in (C++) OOP.
Adriane Meier [ Do, 02 August 2007 15:19 ] [ ID #1785338 ]

Re: Objektorientierte Programmierung mit PHP

..oO(Adriane Meier)

>Harald Stowasser schrieb:
>
>>> Obwohl du nach Lehr-Texten fragst, meine ich, daß es einen schnellen,
>>> sicheren, Weg in die C(++) - OOP gibt, wenn man C kann und das
>>> Windows-API kennt: die MFC.
>>
>> Ausgerechnet die MFC zu empfehlen halte ich für ausgesprochen schlecht.
>> Da MFC wirklich eins der schlechtesten Dinge ist die M$ jemals
>
>Falsch, nicht die MFC sind irgendwie schlecht inbezug auf OOP oder C++, [...]

Doch, durchaus (IMHO). Ich mußte mich vor Jahren zwangsweise damit
befassen - und ich habe es gehaßt. Nicht nur die MFC an sich, sondern
insbesondere auch das ganze Geschwurbel namens Visual Studio drumrum.

Es mag zum Teil auch an grundsätzlicher persönlicher Abneigung gelegen
haben (ich bevorzuge Delphi/VCL, durfte es damals aber nicht verwenden),
aber auch qualitativ sind die MFC IMHO ziemlicher Müll. Es gibt weitaus
bessere Klassenbibliotheken.

Leicht OT hier ...

Micha
Michael Fesser [ Do, 02 August 2007 15:47 ] [ ID #1785339 ]

Re: Objektorientierte Programmierung mit PHP

Michael Fesser schrieb:

>>> Ausgerechnet die MFC zu empfehlen halte ich für ausgesprochen schlecht.
>>> Da MFC wirklich eins der schlechtesten Dinge ist die M$ jemals
>>
>> Falsch, nicht die MFC sind irgendwie schlecht inbezug auf OOP oder C++, [...]

> Doch, durchaus (IMHO).

Nein, keinesfalls.

> Ich mußte mich vor Jahren zwangsweise damit befassen - und ich habe es gehaßt.

Daß viele Leute Mathematik hassen, ist kein Argument dafür, daß Mathematik
"schlecht" ist.

Es ist nichts an den MFC apriori schlecht, man kann es allerdings soetwas immer
irgendwie anders machen, z.B. so, daß es der "feindlichen" Turbo-Pascal/Delphi-
Gemeinde möglichst gut gefällt. Die MFC sind jedenfalls eine effektive, i.e. knappe,
Verpackung der Win-C-APIs, die für jeden, der dieses API von C aus kannte ein
perfektes Lehrstück in wirklich ALLEN praktischen Belangen bot/bietet, die man
brauchen kann. Daß die MFC nicht alles beinhalten, und man diese auch erweitern
kann, und daß man in der Praxis noch beliebig viele weitere Bibliotheken braucht,
ändert nichts daran, daß die MFC ein knapper und deshalb effektiver Wrapper
für den "Basiskern" des Windows-C-API's sind, die dazu noch von jenen gemacht
wurden, die den dazugehörigen Compiler entwickelt haben und die MFC sofort
selbst (für beinahe alles) verwendet haben, u.a. die IDE ist damit erstellt.

> Leicht OT hier ...

Ja. Und ich wollte eigentlich nur ein Beispiel geben, speziell für Leute, die das
Windows-C-API kennen und nun in OOP einsteigen möchten, denn das geht sehr gut
per F3 und darüber hinaus ist die frei verfügbare "Literatur" dafür im Web "unendlich".

Dieses blöde Generalbashing "MFC ist das schlechteste, was es von MS gibt"
zeigt nur den fachlichen und psychischen Status von dem, der das absondert, und es
ist etwas anderes (nämlich ok) zu sagen, daß man es nicht mag... aber soviel Zeit
wollte ich nie und nimmer in diesen Thread hineinstecken, wie es das nun geworden ist.
Adriane Meier [ Do, 02 August 2007 16:17 ] [ ID #1785340 ]

Re: Objektorientierte Programmierung mit PHP

Adriane Meier schrieb:

> Dieses blöde Generalbashing "MFC ist das schlechteste, was es von MS
> gibt" zeigt nur den fachlichen und psychischen Status von dem, der
> das absondert, und es ist etwas anderes (nämlich ok) zu sagen, daß
> man es nicht mag...

Das nehme ich jetzt Persönlich.


fup2p
Harald Stowasser [ Do, 02 August 2007 17:16 ] [ ID #1785342 ]

Re: Objektorientierte Programmierung mit PHP

Adriane Meier wrote:

> Dieses blöde Generalbashing "MFC ist das schlechteste, was es von MS =
gibt"
> zeigt nur den fachlichen und psychischen Status von dem, der das
> absondert,

Generalbashing über MFC sagt was über den psychischen Zustand des
Bashenden aus? Diese Erkenntnis ist mir neu. In welchem psychiatrischen
Diagnose-Manual kann ich mich diesbezüglich fortbilden?

SCNR,

Alex
Alexander Schestag [ Do, 02 August 2007 20:25 ] [ ID #1785352 ]
PHP » de.comp.lang.php.misc » Objektorientierte Programmierung mit PHP

Vorheriges Thema: fmod(): Seltsame Typisierung
Nächstes Thema: Gruppentreffen php/webautoren