| | | | |
| | |
| Benutzer Registriert seit: 20.09.2008
Beiträge: 91
PHP-Kenntnisse: Anfänger ![]() | Hallo Experten Nachdem ich den scheinbar typischen Weg eines PHP-Einsteigers beschritten habe: Spaghetticode, ohne den Gebrauch von Funktionen ===> Etwas strukturierterer Code durch den Gebrauch von Funktionen, beschäftige ich mich jetzt mit OOP*. ![]() Irgendwo, ich glaube es war sogar hier im Forum, habe ich gelesen, dass die größte Einstiegshürde beim PHP-Scripten mit OOP die ist, dass man erst mal das Prinzip einer objektorientierten Programmmierung kapieren muss, vor allem wenn man die ganze Zeit lieber Spaghetti in all seinen Variationen fabriziert hat. Wenn man das erst mal geschnallt hat und umdenkt, wäre alles ganz einfach. ![]() Nun, so ganz habe ich das glaube ich noch nicht kapiert. Ich hatte mich mit der Theorie beschäftigt und wollte mir meine erste Klasse ausdenken: Problem: Für meine Anwendung brauche ich immer wieder alle Inhalte einer MySQL-Tabelle namens "Kundentyp". Dort gibt es 2 Spalten ("id" und "Kundentyp"). Die Felder müssen in meinem Programm immer wieder in verschiedener Form angezeigt werden (mal innerhalb eines <select> - Feldes in einem Formular, mal nur als Liste, etc). Also dachte ich, das könnte man durch eine Klasse lösen. Die Datenbankabfrage und die while-Schleife bleiben ja immer gleich: PHP-Code: Sorry, wenn dieser Beitrag etwas länger geworden ist und Danke an alle, die sich die Mühe machen, trotzdem zu antworten! ![]() LG l. ___ * Link-Tipp: Peter Kropff - Objektorientierte Programmierung mit PHP5 - Einführung |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Dass dies Blödsinn ist, weißt du hoffentlich selbst: Zitat:
Es gibt zwei Wege: entweder speicherst du alles in einem Array und gibst das zurück oder du gibst $ergebnis zurück und überlässt die Iteration dem Restcode. Beides hat seine Vor- und Nachteile. Meinst lohnt es sich aber, für solche Fälle eigene Datenbankklassen anzulegen. Eine Klasse, die sich um den Verbindungsaufbau kümmert, einer Klasse, die den Query repräsentiert und eine Klasse, die das Ergebnis beinhaltet und von der Query-Klasse zurückgeliefert wird. Das ist aber schon etwas höhere Mathematik.
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” | |
| |
| | |||
| Supermoderator HD Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
![]() Zitat:
__________________ Refining Linux Advent Calendar series “24 Outstanding ZSH Gems” | ||
| |
| | ||
| Erfahrener Benutzer Registriert seit: 04.01.2009
Beiträge: 844
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Da bist du aber nicht die einzige, ich hab sogar ein buch darüber gelesen (mehrfach) und bin nicht soooo wirklich schlauer für was man das grundsätzlich benutzen sollte... | |
| |
| | ||
| Neuer Benutzer Registriert seit: 25.01.2009
Beiträge: 10
![]() | Also im Falle von PHP kann ichs nicht beurteilen, aber der Umstieg von prozeduraler auf objektorientierte Programmierung hat mich im Falle von C++ und Java doch an meinen Kenntnissen zweifeln lassen. Aber es stimmt schon, wenn du mal das bisher gelernte Grundgerüst vergisst, ist OOP ganz leicht )Zitat:
Im Allgemeinen solltest du ein Objekt haben, wie in deinem Fall das Objekt Kunde, der hat mehrere Attribute (id, kundentyp), und jedes Objekt vom Typ "Kunde" kann dann z.b. über die Methode Kunde.printout() die attribute aus der datenbank ausgeben. Also liegt der Vorteil darin, dass du zig Objekte vom Typ Kunden haben kannst (eben den gesamten Kundenstamm) und für jeden Kunden (mit unterschiedlichen Werten in den Attributen) dieselben Methoden verwendest und das noch ausgesprochen bequem in einem Einzeiler - da machts dann meiner Meinung nach keinen Sinn die ganze Tabelle auszulesen sondern nur einzelne Datensätze - es sei denn ich versteh dich immer noch falsch. | |
| |
| | |
| Erfahrener Benutzer Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse: Fortgeschritten ![]() | ein Beispiel: 1. Du programmierst prozedural und mußt in Deinen Projekten immer wieder die gleiche Blätterfunktion per copy/paste ienfügen und die Breite des Ausgabebereichs, die sql-Abfrage etc.anpassen. 2. Du programmierst immer noch prozedural, aber strukturierst Deine Projekt übersichtlich (alle Anfragen über eine index, weitgehende Trennung von php unf html, include von header, content (je nach GET-(POST-Parameter)), footer). 3. Du machst eine Blätterfunktion welche HTML zurückgibt und übergibst ihr die Parameter (Ausgabebereichsbreite usw.). 4. Nun hast Du aber mehrere Funktionen und Eigenschaften welche sich auf das Blättern beziehn. Du faßt diese in einer Klasse zusammen. 5. Damit Du Programmlogik (PHP-Teil) und Ausgabelogik wieder schön getrennt hast unterteilst Du die Klasse in zwei Klassen: eine zur Ausgabe(view) und eine mit den Berechnungen(controller). Wenn Du Deine "Programmteile" alle entsprechend umgebaut hast und dann noch eine Klasse hast welche die GET-/POST-Anfragen an die jeweils zuständigen Klassen weiterreicht - dann hast Dein kleines privates OOP/MVC-Framework. Geändert von Koala (25.01.2009 um 16:54 Uhr). |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Objekt im GET-Query wird nicht übertragen | Ralpho | PHP-Fortgeschrittene | 10 | 05.05.2008 10:03 |
| [Erledigt] PHP5 OOP Zugriff aus einem Objekt auf ein externes Objekt | PHP Tipps 2006 | 5 | 28.01.2006 16:05 | |
| kann sich ein Objekt selbst serialisieren? | ajo_silent | PHP Tipps 2005-2 | 24 | 27.06.2005 09:13 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php objektorientiert programmieren, php objektorientiert datenbank, php oop formular, objektorientierte programmierung php, php formular objektorientiert, php objektorientierte programmierung, php objektorientiert formular, php datenbank objektorientiert, einstieg oop, objektorientierte datenbank php, oop einstieg, einstieg oop php, php objektorientiert, php formular oop, php objektorientiert beispiel, datenbank php objektorientiert, php objektorientiert datenbankverbindung, objektorientierte php programmierung, oop php formular, objektorientiert php programmieren |