OOP auf instanz aus anderer Class zugreifen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    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.

    Kommentar


    • #17
      Zitat von Kropff Beitrag anzeigen
      PHP-Code:
      class Controller -> Zugriff auf entsprechendes Model
      class Model extends DB 
      Aber 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.
      Dadurch sagst du ja erst wieder: Ein Model ist eine DB. Ist es aber nicht. Also das selbe wie dein erster Vorschlag.

      Kommentar


      • #18
        PHP-Code:
        class DB {...}
        class 
        User extends DB {...}
        // header.php
        $obj = new User(); 
        wo ist das problem, und warum soll das unsauber sein?

        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


        • #19
          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!
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #20
            Zitat von TriphunEM Beitrag anzeigen
            PHP-Code:
            class DB {...}
            class 
            User extends DB {...}
            // header.php
            $obj = new User(); 
            wo ist das problem, und warum soll das unsauber sein?
            Das hat combie bereits perfekt auf den Punkt gebracht:

            Zitat von combie Beitrag anzeigen
            Vererbung baut eine "ist eine" Beziehung auf.
            "User ist eine DB"
            Hört sich nicht gut an.
            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.
            Zuletzt geändert von AmicaNoctis; 18.12.2009, 09: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


            • #21
              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, 10:12.

              Kommentar


              • #22
                Zitat von TriphunEM Beitrag anzeigen
                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!
                Und was ist, wenn du zwei Funktionalitäten brauchst? Ableiten kannst du ja nur von einer Klasse.

                Kommentar


                • #23
                  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


                  • #24
                    Zitat von TriphunEM Beitrag anzeigen
                    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!
                    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 anzeigen
                    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.
                    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 anzeigen
                    nee nee, das find ich nicht gut!
                    Könnte daran liegen, dass du es nicht kapierst.

                    Zitat von TriphunEM Beitrag anzeigen
                    Ja das ist richtig! Ich hoffe das PHP dafür irgendwann noch ein Lösung findet!
                    Aber deshalb auch das Prinzip der Kern-Klasse.
                    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 anzeigen
                    wichtig ist aber, wie obenbei nachträglich erwähnt, die Übersicht. Man bläht sein code unnötig auf!
                    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.

                    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?
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #25
                      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, ...
                      Weil das eben die menschliche Natur ist, man muss sich die Denkweise eines Erfahrenen erstmal hineinfinden. Oder hast du anders angefangen?

                      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?
                      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.
                      (Kurt Tucholsky, 1932)
                      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                      Kommentar


                      • #26
                        Zitat von fireweasel Beitrag anzeigen
                        Weil das eben die menschliche Natur ist, man muss sich die Denkweise eines Erfahrenen erstmal hineinfinden. Oder hast du anders angefangen?
                        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".

                        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.
                        [FONT="Helvetica"]twitter.com/unset[/FONT]

                        Shitstorm Podcast – Wöchentliches Auskotzen

                        Kommentar


                        • #27
                          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, 12:15.

                          Kommentar


                          • #28
                            Zitat von TriphunEM Beitrag anzeigen
                            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!
                            Okay, das erklärt, warum du dich so verhältst. Dann will ich dir zumindest daraus keinen Vorwurf machen.

                            Zitat von TriphunEM Beitrag anzeigen
                            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
                            Das tu ich auch, und ich hab dahingehend noch nie Probleme mit einer sauberen Architektur gehabt.

                            Zitat von TriphunEM Beitrag anzeigen
                            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 ist seit millionäre und wisst nicht wohin mit eurer zeit, oder php-resource bezahlt euch überragend.
                            Abgesehen davon, dass ich meine Zeit auch "sinnvoll" verwende –*also arbeiten – 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 =)


                            Zitat von TriphunEM Beitrag anzeigen
                            Fakt ist, viele gute Wege führen nach Rom.
                            Richtig. Gibt aber auch steinige, auf denen man sein Ziel trotzdem erreichen kann.
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #29
                              Zitat von TriphunEM Beitrag anzeigen
                              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!
                              Heißt alles und nichts. Du kannst auch 8 Jahre Blödsinn programmiert haben, was ich aber natürlich nicht annehme.

                              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.

                              Zitat von TriphunEM Beitrag anzeigen
                              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
                              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 anzeigen
                              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.
                              Als Programmierer wird man nicht reich. Wenn das dein Ziel ist, dann hast du den falschen Beruf gewählt

                              Zitat von TriphunEM Beitrag anzeigen
                              Fakt ist, viele gute Wege führen nach Rom.
                              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.
                              Zuletzt geändert von h3ll; 18.12.2009, 12:29.

                              Kommentar


                              • #30
                                Zitat von h3ll Beitrag anzeigen
                                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.
                                Das Wort zum Sonntag // der php hacker ? ein php blog

                                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.
                                Warum Mikro-Performance kontraproduktiv ist // der php hacker ? ein php blog

                                Nur um klar zu stellen, dass ich da mit dir d'Accord bin =)
                                [FONT="Helvetica"]twitter.com/unset[/FONT]

                                Shitstorm Podcast – Wöchentliches Auskotzen

                                Kommentar

                                Lädt...
                                X