Ich schließe mich da unset an. Für die Db, Table und Record liefert das Zend Framework zum Beispiel schon alles nötige. Das auf eine Model-Instanz zu mappen bekommt jeder Generator automatisch hin. Und ich nehme mal auch an, dass Kropffs MVC-Gedanke in eine ähnliche Richtung geht.
							
						
					OOP auf instanz aus anderer Class zugreifen
				
					Einklappen
				
			
		
	X
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Dadurch sagst du ja erst wieder: Ein Model ist eine DB. Ist es aber nicht. Also das selbe wie dein erster Vorschlag.Zitat von Kropff Beitrag anzeigenAber so richtig toll finde ich das nicht. Ist nur einen Bauchgeschichte und ich suche nach Alternativen. Habe bisher nur keine gefunden. Nenn das einfach Ordnungswahn.PHP-Code:class Controller -> Zugriff auf entsprechendes Model
 class Model extends DB
 
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 wo ist das problem, und warum soll das unsauber sein?PHP-Code:class DB {...}
 class User extends DB {...}
 // header.php
 $obj = new User();
 
 
 DB-Funktionen sind in der Regel die Funktionen die, die meiste verwendung findet. Also gibt es bei mir keine DB-Klasse sondern eine Core-Class, in der auch alle wichtigen funktionen datenbank, sicherheits usw. vorhanden sind. Aller anderen Klasse erben die Core-Class.
 
 Aber ich lern gern neu dazu!
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Effektiv nutzen nur Modelle und nichts anderes die Datenbank …*und das auch nur Delegiert. Das wurde hier aber schon ausführlich erklärt, bitte lies das auch!
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Das hat combie bereits perfekt auf den Punkt gebracht:Zitat von TriphunEM Beitrag anzeigenwo ist das problem, und warum soll das unsauber sein?PHP-Code:class DB {...}
 class User extends DB {...}
 // header.php
 $obj = new User();
 
 
 Beispiel: Nur weil du Auto fährst, erbst du (Klasse Person) noch lange nicht von der Klasse Car. Nach deiner Logik würdest du das aber und das ist das Problem dabei und darum ist dein Ansatz unsauber.Zitat von combie Beitrag anzeigenVererbung baut eine "ist eine" Beziehung auf.
 "User ist eine DB"
 Hört sich nicht gut an.Zuletzt geändert von AmicaNoctis; 18.12.2009, 10:26.[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt? 
 Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
 Super, danke! 
 [/COLOR]
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ok. aber ich denke hier nicht im prinzip auto->marke->farbe usw.
 
 ich hab eine Kern-Klasse, und alle anderen Klassen erben dessen Funktionlität, weil sich dort grund funktionen befinden. so seh ich das bisher immer!
 
 Was ich noch für sinnvol erachte ist die Möglichkeit über ein Interface.
 Die andere Sachen, der Code soll dennoch übersichtlich bleiben und strukturiert. Und zu viel strukturierung ist auch nicht gut. stellt euch mal vor einer soll sich in euren code eindenken, und muss wegen jeden Furz wieder in eine neue Funktion oder sogar Klasse springen um die zusammenhänge zu erkennen.
 
 nee nee, das find ich nicht gut!Zuletzt geändert von TriphunEM; 18.12.2009, 11:12.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Und was ist, wenn du zwei Funktionalitäten brauchst? Ableiten kannst du ja nur von einer Klasse.Zitat von TriphunEM Beitrag anzeigenOk. aber ich denke hier nicht im prinzip auto->marke->farbe usw.
 
 ich hab eine Kern-Klasse, und alle anderen Klassen erben dessen Funktionlität, weil sich dort grund funktionen befinden. so seh ich das bisher immer!
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Ja das ist richtig! Ich hoffe das PHP dafür irgendwann noch ein Lösung findet!
 Aber deshalb auch das Prinzip der Kern-Klasse.
 
 Stimmt ich hatte das Problem schon mal, aber ist alles eine Frage der herangehensweise.
 
 wichtig ist aber, wie obenbei nachträglich erwähnt, die Übersicht. Man bläht sein code unnötig auf!
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Und jede Klasse nutzt auch immer all diese Funktionen? Weißt du, was der Begriff "Klasse" eigentlich bedeutet? Ich erkläre es mal mit wenigen Worten: Eine Klasse ist eine Sammlung von Subjekten die sich verschiedene Merkmale teilen. Da ich zum Beispiel ganz genau weiß, dass nicht jede deiner Klassen auf die Datenbank zugreifen wird, ist es also schon per Definition nicht korrekt, dass deine Kern-Klasse diese Möglichkeit für alle zur Verfügung stellt.Zitat von TriphunEM Beitrag anzeigenich hab eine Kern-Klasse, und alle anderen Klassen erben dessen Funktionlität, weil sich dort grund funktionen befinden. so seh ich das bisher immer!
 
 Warum sollte es soetwas wie "zu viel Strukturierung" geben? Umso strukturierter, desto besser. Und umso kürzer Methoden sind, desto wartbarer, wiederverwertbarer und fehlerresistenter sind sie! Der "Spring" zu einer Klasse, Methode oder Funktion dauert in den meisten IDEs übrigens grade mal einen Klick: In PDT drück die Kommandotaste und klicke auf die Methode, Funktion, Variable, Klasse*…*was auch immer …*und bin sofort im Code.Zitat von TriphunEM Beitrag anzeigenWas ich noch für sinnvol erachte ist die Möglichkeit über ein Interface.
 Die andere Sachen, der Code soll dennoch übersichtlich bleiben und strukturiert. Und zu viel strukturierung ist auch nicht gut. stellt euch mal vor einer soll sich in euren code eindenken, und muss wegen jeden Furz wieder in eine neue Funktion oder sogar Klasse springen um die zusammenhänge zu erkennen.
 
 Könnte daran liegen, dass du es nicht kapierst.Zitat von TriphunEM Beitrag anzeigennee nee, das find ich nicht gut!
 
 Da würde ich nicht drauf hoffen an deiner Stelle. Außerdem –*ganz unabhängig von der Architektur –*ist es auch schlechter Stil, für Morgen auf Lösungen für Probleme zu hoffen, die heute schon lösbar sind!Zitat von TriphunEM Beitrag anzeigenJa das ist richtig! Ich hoffe das PHP dafür irgendwann noch ein Lösung findet!
 Aber deshalb auch das Prinzip der Kern-Klasse.
 
 Du erliegst hier einem Irrglauben: Nur weil man sauber abstrahiert und kapselt, bläht man gar nichts auf. Das scheint dir vielleicht so, weil du keine vernünftige IDE benutzt und dich evtl. von Hand durch etliche Dateien hangeln musst.Zitat von TriphunEM Beitrag anzeigenwichtig ist aber, wie obenbei nachträglich erwähnt, die Übersicht. Man bläht sein code unnötig auf!
 
 Zum Schluss will ich dir noch ein paar Links mit auf den Weg geben, die dir vielleicht unsere Sichtweise etwas näher bringen:
 
 Und ganz am Ende noch etwas allgemeines, und nicht einmal direkt auf dich bezogen (obwohl, ein bisschen schon): Warum glaubt jeder "Anfänger" oder "Hobbyprogrammierer" auf die Idee, es besser wissen zu wollen, als die Leute, die es gelernt haben, seit Jahren machen und mehr Erfahrung vorzuweisen haben als die meisten Fragesteller jemals anhäufen werden! Kannst du mir das verraten?
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Weil das eben die menschliche Natur ist, man muss sich die Denkweise eines Erfahrenen erstmal hineinfinden. Oder hast du anders angefangen?Zitat von unset Beitrag anzeigen... Und ganz am Ende noch etwas allgemeines, und nicht einmal direkt auf dich bezogen (obwohl, ein bisschen schon): Warum glaubt jeder "Anfänger" oder "Hobbyprogrammierer" auf die Idee, es besser wissen zu wollen, ... 
 
 Objekt-orientierte Programmierung hat noch dazu das Problem, dass sich selbst die Fachleute gerne streiten, welche Lösung die bessere, elegantere, sauberere e.t.c. ist.
 
 How do you find a needle in a haystack? - Stack Overflow
 
 (Das könnte mit daran liegen, dass eben nicht jedes Problem exakt objektorientiert lösbar ist. Für sowas gibts halt andere Programmierparadigmen.)
 
 ... als die Leute, die es gelernt haben, seit Jahren machen und mehr Erfahrung vorzuweisen haben als die meisten Fragesteller jemals anhäufen werden! Kannst du mir das verraten?(Kurt Tucholsky, 1932)Laß dir von keinem Fachmann imponieren, der dir erzählt: »Lieber Freund, das mache ich schon seit zwanzig Jahren so!« - Man kann eine Sache auch zwanzig Jahre lang falsch machen.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Nein, aber das ist doch auch gar nicht das Problem. Mir geht es darum, dass gesagt wird "alles quatsch, so wie ich es mache ist es besser".Zitat von fireweasel Beitrag anzeigenWeil das eben die menschliche Natur ist, man muss sich die Denkweise eines Erfahrenen erstmal hineinfinden. Oder hast du anders angefangen? 
 
 Das jemand mit der Aussage, die das Zitat enthält, kommt, war mir auch fast klar, als ich es geschrieben habe –*und generell bin ich auch jemand, der immer erst versucht zu hinterfragen und auch dazu auffordert. Aber: Bevor man etwas Hinterfragen kann, muss man es erst einmal verstehen – Ansonsten ist es einfach nur Ignoranz. –*und generell bin ich auch jemand, der immer erst versucht zu hinterfragen und auch dazu auffordert. Aber: Bevor man etwas Hinterfragen kann, muss man es erst einmal verstehen – Ansonsten ist es einfach nur Ignoranz.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 naja, als anfänger und hobbyprogrammierer seh ich mich nicht. ich programmiere seit nun 8 Jahren PHP, und arbeite auch im Beruf als PHP-Programmierer! Ich hab auch selber größere Projekte die super laufen!
 
 Meine Kunden sind auch mit meiner arbeit sehr zu frieden. Dennoch lernt man in PHP nicht aus, und sicher gibt es viele die sich mit der materie noch genauer auskennen und ich lern gern dazu. Aber da ich erfolgsorientiert und wirtschaftlich arbeite, und mir die Sprache zum größten Teil selbst angeeignet habe, hab ich nicht immer die Zeit mich ins Detail mit der Art und Weise von Stilen auseinander zu setzen!
 
 Wichtig ist, das meine Lösungen funktionieren und eine gute Performance bei hoher last aufweist, was server und datenbank angeht. Ich arbeite an Projekte mit 200 K Besuchern am Tag und die laufen stabil und schnell
 
 Aber auch ich entwickel mich weiter, und werde mich mit der Klassenarchitektur jetzt nochmal genau auseinander setzen.
 
 Und ihr, die hohes wissen habt ohne frage, ist für mich trotzdem fragwürdig, wie ihr mit so einem wissen, hier den ganzen Tag im Board unterwegs seit, statt eurer zeit sinnvoll zu verwenden und aus euren leistungen kapital zu schlagen. entweder ihr seit millionäre und wisst nicht wohin mit eurer zeit, oder php-resource bezahlt euch überragend.
 
 Fakt ist, viele gute Wege führen nach Rom.Zuletzt geändert von TriphunEM; 18.12.2009, 13:15.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Okay, das erklärt, warum du dich so verhältst. Dann will ich dir zumindest daraus keinen Vorwurf machen.Zitat von TriphunEM Beitrag anzeigennaja, als anfänger und hobbyprogrammierer seh ich mich nicht. ich programmiere seit nun 8 Jahren PHP, und arbeite auch im Beruf als PHP-Programmierer! Ich hab auch selber größere Projekte die super laufen!
 
 Das tu ich auch, und ich hab dahingehend noch nie Probleme mit einer sauberen Architektur gehabt.Zitat von TriphunEM Beitrag anzeigenWichtig ist, das meine Lösungen funktionieren und eine gute Performance bei hoher last aufweist, was server und datenbank angeht. Ich arbeite an Projekte mit 200 K Besuchern am Tag und die laufen stabil und schnell
 
 Abgesehen davon, dass ich meine Zeit auch "sinnvoll" verwende –*also arbeitenZitat von TriphunEM Beitrag anzeigenUnd ihr, die hohes wissen habt ohne frage, ist für mich trotzdem fragwürdig, wie ihr mit so einem wissen, hier den ganzen Tag im Board unterwegs seit, statt eurer zeit sinnvoll zu verwenden und aus euren leistungen kapital zu schlagen. entweder ist seit millionäre und wisst nicht wohin mit eurer zeit, oder php-resource bezahlt euch überragend. – beschäftige ich mich zum einen mit den Problemen anderer, weil ich es am Anfang selbst so gelernt habe –*durch die Community! Zum anderen, weil ich meinen Teil dazu beitragen will, das schlechter Legacy Code mich an meiner Arbeit behindert – beschäftige ich mich zum einen mit den Problemen anderer, weil ich es am Anfang selbst so gelernt habe –*durch die Community! Zum anderen, weil ich meinen Teil dazu beitragen will, das schlechter Legacy Code mich an meiner Arbeit behindert 
 
 Übrigens machen das hier alle ehrenamtlich =)
 
 
 Richtig. Gibt aber auch steinige, auf denen man sein Ziel trotzdem erreichen kann.Zitat von TriphunEM Beitrag anzeigenFakt ist, viele gute Wege führen nach Rom.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Heißt alles und nichts. Du kannst auch 8 Jahre Blödsinn programmiert haben, was ich aber natürlich nicht annehme.Zitat von TriphunEM Beitrag anzeigennaja, als anfänger und hobbyprogrammierer seh ich mich nicht. ich programmiere seit nun 8 Jahren PHP, und arbeite auch im Beruf als PHP-Programmierer! Ich hab auch selber größere Projekte die super laufen!
 
 Solche Aussagen wie "ich habe x Jahre PHP-Erfahrung" sollte man immer mit Vorsicht genießen. Das kann einerseits heißen, dass jemand sehr viele Erfahrungen gesammelt hat, es kann aber auch heißen, dass sich jemand nicht weiterentwickelt hat.
 
 Es gibt aber auch Projekte, wo die Performance nicht das Wichtigste ist, sondern die Erweiterbarkeit. Denn Performance kann man hinzu kaufen. Die Hardware-Kosten sind sehr überschaubar. Aber wenn du irgendwo eine Sackgasse im Projekt hast, können mehrere Wochen oder sogar Monate an Manpower draufgehen.Zitat von TriphunEM Beitrag anzeigenWichtig ist, das meine Lösungen funktionieren und eine gute Performance bei hoher last aufweist, was server und datenbank angeht. Ich arbeite an Projekte mit 200 K Besuchern am Tag und die laufen stabil und schnell
 
 Als Programmierer wird man nicht reich. Wenn das dein Ziel ist, dann hast du den falschen Beruf gewähltZitat von TriphunEM Beitrag anzeigenUnd ihr, die hohes wissen habt ohne frage, ist für mich trotzdem fragwürdig, wie ihr mit so einem wissen, hier den ganzen Tag im Board unterwegs seit, statt eurer zeit sinnvoll zu verwenden und aus euren leistungen kapital zu schlagen. entweder ihr seit millionäre und wisst nicht wohin mit eurer zeit, oder php-resource bezahlt euch überragend. 
 
 Es gibt aber steinige Wege und es gibt Autobahnen. Und manche Wege, die zuerst vielversprechend aussehen, stellen sich irgendwann als Sackgasse heraus, und dann musst du einen großen Umweg machen.Zitat von TriphunEM Beitrag anzeigenFakt ist, viele gute Wege führen nach Rom.Zuletzt geändert von h3ll; 18.12.2009, 13:29.
 Kommentar
- 
	
	
	
		
	
	
		
		
		
		
		
		
		
	
	
 Das Wort zum Sonntag // der php hacker ? ein php blogZitat von h3ll Beitrag anzeigenSolche Aussagen wie "ich habe x Jahre PHP-Erfahrung" sollte man immer mit Vorsicht genießen. Das kann einerseits heißen, dass jemand sehr viele Erfahrungen gesammelt hat, es kann aber auch heißen, dass sich jemand nicht weiterentwickelt hat.
 
 Warum Mikro-Performance kontraproduktiv ist // der php hacker ? ein php blogEs gibt aber auch Projekte, wo die Performance nicht das Wichtigste ist, sondern die Erweiterbarkeit. Denn Performance kann man hinzu kaufen. Die Hardware-Kosten sind sehr überschaubar. Aber wenn du irgendwo eine Sackgasse im Projekt hast, können mehrere Wochen oder sogar Monate an Manpower draufgehen.
 
 Nur um klar zu stellen, dass ich da mit dir d'Accord bin =)
 Kommentar
 
          
 Moderator
 Moderator
Kommentar