Einstiegsprobleme mit OOP (PHP)

simusch

simusch

Aktives Mitglied
Thread Starter
Dabei seit
27.09.2004
Beiträge
2.030
Reaktionspunkte
219
Hallo zusammen

Seit einiger Zeit kämpfe ich mit dem Einstieg in die Objektorientierte Programmierung unter PHP.
Jedes Mal, wenn ich vor einem neuen Projekt/-teil stehe, denke ich, "so, jetzt mal sauber aufbauen, eine Klasse schreiben..." etc, lande jedoch immer wieder im gewohnten if/elseif/else/function XY() - Dschungel.

Ich habe schon einige Kurse und Beispiele angeschaut, jedoch kann ich diese einfach kaum auf meine Projekte umbiegen.

Ein aktuelles konkretes Problem:

Ein Script erstellt eine/mehrere (XML-)Datei/en, welche ich dann exportieren möchte. Und zwar:
a) in eine Dropbox
b) in Google Drive
c) in einen FTP-Account
d) Zippen und als Download bereitstellen
e) einfach weitere Schnittstellen ergänzen

Nun möchte ich aber die verschiedenen Schnittstellen so einbinden, dass ich die Datei einfach an die passende Stelle übergeben kann, welche dann die Dateien weiterschickt.

Wie würdet ihr da strukturell vorgehen? Eine/mehrere Klasse/n mit Funktionen? Was wird wo erledigt?
Wie kann ich die Sache möglichst erweiterbar halten?

Ich erwarte keine konkreten Code-Beispiele, sondern einen Schubser in die richtige Richtung :)

Simu
 
Ich kann's nachvollziehen, mit OOP stehe ich auch auf dem Kriegsfuss. Habe das Prinzip irgendwie nie richtig verstanden. Was ich verstanden habe, und das wird auch von OOP-Verfechtern selbst zugegeben: Man muss nicht OOP auf alles zwangsanwenden, wenn "normale" Programmierung den Job genauso gut oder sogar einfacher erledigen kann.

Jetzt nicht unbedingt hilfreich, wollte es aber nur mal schnell einwerfen.
 
  • Gefällt mir
Reaktionen: medeman
das fängt schon damit an, dass du dann erst mal deine schnittstelle vernünftig entwerfen musst.
ganz simple wäre ja quasi dropbox|google drive|ftp|zip wobei du ja beim upload dann noch user/pass übergeben müsstet oder sind die hardkodiert in den funktionen/methoden?
wie du das ganze dann implementiert als objekt oder als funktionen ist an sich egal, speziell bei PHP ist ja eh alles ein matsch aus objekten und funktionaler programmierung …
 
  • Gefällt mir
Reaktionen: wegus und electricdawn
Ich erwarte keine konkreten Code-Beispiele, sondern einen Schubser in die richtige Richtung :)
Schreib Dir auf dem Papier genau auf, wie es funktionieren soll.
Dann liest Du das durch und korrigierst die Fehler.
Dann liest Du alles noch mal am Stück und schaust, ob es passt.
Dann machst Du ein Konzept mit Klassen usw
Dann spielst Du das auf dem Papier ein paar mal durch.
...
Dann schreibst Du die erste Zeile Code.

Klingt doof, aber genau so funktioniert es.
 
  • Gefällt mir
Reaktionen: simusch und wegus
Mal ein banaler Ansatz ( auf dem sich dann streiten/diskutieren läßt):

- Schreib Dir alle Varianten auf
- Liste die Attribute die sie haben müssen und die Methoden die sie liefern müssen
- erzeuge ein Interface, dass die Methoden definiert die für alle Varianten vorhanden sein müssen ( upload() zum Beispiel oder auth() )
- dann erzeuge eine Basisklasse, die Methoden bereitstellt die alle Varianten unverändert benötigen (Logging z.B.)
Aus Basisklasse und Interface machst Du dann Lösungen a la:

class XML2Dropbox extends BasisKlasse implements XMLUploadInterface {
.....
}
 
  • Gefällt mir
Reaktionen: simusch
Ich habe schon einige Kurse und Beispiele angeschaut, jedoch kann ich diese einfach kaum auf meine Projekte umbiegen.
Womit hast du denn bisher gelernt?

Ich vermute, dass du dich nicht intensiv genug mit den Kursen auseinandergesetzt hast. So richtig lernt man halt erst durchs Programmieren. Möglicherweise ist dein aktuelles Projekt noch eine Nummer zu groß - nicht, weil es besonders schwer wäre, aber vielleicht etwas umfangreich und auch eher abstrakt.

Deine Problembeschreibung klingt für mich so, als wärst du noch auf einer ziemlich frühen Stufe. Die Beschäftigung mit einzelnen Konzepten wie SOLID oder Interfaces bringt dann vielleicht nur mehr Verwirrung. Möglicherweise bringt es dir mehr, erstmal einen Kurs richtig durchzuarbeiten.
 
Zurück
Oben Unten