Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC Problem

Einklappen

Neue Werbung 2019

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

  • MVC Problem

    Hallo,

    ich versuche grade meine erstes Programm nach dem MVC Prinzip aufzubauen, allerdings kommt mir das ganze jetzt etwas komisch vor.

    - Ich habe Klassen die hauptsächlich DB abfragen machen (Model?)
    - php Dateien die die Klassen benutzen, die Daten bearbeiten und ein Template laden (Controller?)
    - Das Template (View?)

    Ist das so korrekt ? Ich benutze keine Template Engine oder so, ich include ein html file das wiederum aber wieder php enthällt um die Ausgabe zu realisieren. (Hauptsächlich foreach um den Inhalt von Arrays auszugeben, if-else Konstrukte etc.)
    Jetzt steht im Template bzw der html Datei aber bald mehr php als html und in den Controller Dateien allgemein nur relativ wenig. Mache ich irgendwas grundlegendes dabei falsch ? Funktionieren tut das ganze schon aber der Aufbau ist mir etwas suspekt...
    Hoffe das war einigermaßen verständlich.

    Gruß


  • #2
    So lange der PHP-Code nur der Ausgabe dient, ist das völlig ok. Ob das Model die Datenabfrage mit übernehmen soll, da scheiden sich die Geister. Schau doch mal hier im Forum rum, es gibt zig Threads zu diesem Thema..

    Kommentar


    • #3
      Naja, eigentlich sollte man diese weiter abstrahieren. Denn es kann ja durchaus mehrere Views auf ein Model geben. Wenn die dann spezielle Felder oder Formate brauchen steht man blöd da und fängt an, seine Datenbankabfrage schwammig zu gestalten.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Da's hier um MVC geht wollte ich gleich auch mal was dazu Fragen...

        Erstmal wie ich das grad mit dem MVC versuche umzusetzten:
        Also ich hab einen FrontController der nimmt alle Anfragen entgegen und schickt die dann an den entsprechenden Controller weiter und bindet auch die entsprechenden Models und Templates ein.

        View hab ich eigentlich nur einen und der macht nix anderes wie Werte speichern die ihm von Controller gegeben werden und die dann in ein HTML Template einbauen und ausgeben.

        Nun hab ich aber das gleiche wie oben genannt, die einzelnen Templates bestehen aus einem Haufen PHP, damit die Daten ordentlich angezeigt werden, das Model hat halt ein paar Datenbankabfragen usw drin. Nur der Controller steht ein bisschen verloren rum da eine einzelne Aktion meistens nicht mehr ist als iwas vom Model zu holen und an den View weiterzureichen...

        Wenn Ihr über Views reden ist dann das was ich Template nenne oder sind das wirklich verschiedene Klassen ? Weil wie oben geschrieben habe ich nur eine von diesen Klassen die die Ausgabewerte sammeln und dann ein Template includen wo das dann alles eingefügt wird ?

        Grüße
        Signatur:
        PHP-Code:
        $s '0048656c6c6f20576f726c64';
        while(
        $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

        Kommentar


        • #5
          Denn es kann ja durchaus mehrere Views auf ein Model geben.
          Das ist ja wieder ein anderer Ansatz. Wenn man das aber so sieht, dass der Controller dem View die Daten zuweist, dann halte ich das für ok.

          Wobei ich Dir allerdings Recht gebe, dass die Datenhaltung im Model noch einmal abstrahiert sein muss (z. B. ganz banal als ORM oder irgendwelche Mappingmechanismen). Was ich nicht verstehe, ist, wenn manche Anwendungen die Verbindung zwischne Model und Datenhaltung noch mal in 2 oder 3 Schichten unterteilen - Allerdings ist das auch wieder nur Ansichtssache

          View hab ich eigentlich nur einen und der macht nix anderes wie Werte speichern die ihm von Controller gegeben werden
          Der/Das/Die View speichert gar nichts.

          Nur der Controller steht ein bisschen verloren rum da eine einzelne Aktion meistens nicht mehr ist als iwas vom Model zu holen und an den View weiterzureichen
          Ist doch auch völlig ok.

          Kommentar


          • #6
            Ok vllt schlecht ausgedrückt, dass mit dem speichern...
            Ich meine das so:

            Controller:
            PHP-Code:
            $this->view->name 'Hannes'
            Das meine ich mit speichern.
            Signatur:
            PHP-Code:
            $s '0048656c6c6f20576f726c64';
            while(
            $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

            Kommentar


            • #7
              Das hat in dem Sinne IMHO aber nichts mit Speichern zu tun. Du initialisierst einfach deine Werte im Template
              "My software never has bugs, it just develops random features."
              "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

              Kommentar

              Lädt...
              X