Ankündigung

Einklappen
Keine Ankündigung bisher.

MVC und Templates

Einklappen

Neue Werbung 2019

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

  • #31
    Dann hast du halt kein MVC sondern MVVM. Bei MVC wie ich es kenne ist die View bereits die Darstellung der Daten und des Models. Bei MVVM gibt es noch extra das ViewModel, welches eine spezialisierte Sicht auf die Daten ist, also genau was du mit filtern etc. meinst. Das wird dann erst von der finalen View angezeigt.
    [URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]

    Kommentar


    • #32
      daang das ist es!!! nun wird einiges klarer kannte das MVVM noch garnicht
      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

      Kommentar


      • #33
        View soll ja im grunde nur ein Datenspeicher sein, deshalb denke ich nicht dass er sich selbst rendern können darf.
        Die View rendert sich auch nicht selbst sondern die Ausgabedaten.
        So rendert ein Browser die html-Tags zur Ausgabe als Pixel.
        Rendern heißt im Zusammenhang mit "View" ja nur z.B. "html erzeugen".

        und da der Renderer neben dem View exestiert, hat man eben den Vorteil dass man den einfach switchen kann. Bei Ajax request könnte ich im grunde JSON renderer nehmen. bei XLS Export könnte ich PHPExcel als renderer verwenden usw..
        nee ...
        Die View ist austauschbar !

        nimmt rohdaten aus model, gibt die für verarbeitung an view , nimm view daten und übergibt die an den rendere
        Du nimmst Rohdaten und übergibst die an eine View(an ein Template)
        und diese html-View wird dann z.B. als Excel ausgegeben ?

        Das kanns doch nicht sein.

        Wenn Deine View aber je nach Renderer die Daten anders bearbeitet,
        dann ist die View abhängig vom Renderer.

        View vearbeitet aber die daten zusätzlich, zb übersetzen, filtern, etc bereitet die daten quasi für die ausgabe vor.
        Dann hast Du doch Verarbeitungslogik in der View.

        Eine View ist aber ein Template oder bastelt aus verschiedenen Schnippseln (Subtemplates)
        ein Template zusammen. Anschließend oder währenddessen werden die Platzhalter
        im Template ersetzt und ausgegeben -> thats it.

        Als Anregung aus der ZF-Doku:
        http://framework.zend.com/manual/1.1...ntrollers.html
        PHP-Code:
        $view = new Zend_View();
        $view->"Hay";
        $view->"Bee";
        $view->"Sea";
        echo 
        $view->render('someView.php'); 
        http://framework.zend.com/manual/1.1...er.action.html
        werden templates in das Antwort Objekt gerendert
        Was in C++ gilt, muß in PHP nicht gelten.

        Ich kenn jedenfalls kein PHP-Framework welches MVC so umsetzt wie Du es machst.
        Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

        Kommentar


        • #34
          Zitat von Koala Beitrag anzeigen
          Die View rendert sich auch nicht selbst sondern die Ausgabedaten.
          So rendert ein Browser die html-Tags zur Ausgabe als Pixel.
          Rendern heißt im Zusammenhang mit "View" ja nur z.B. "html erzeugen".
          gut dann ist der begriff renderer falsch, müsste wohl eher Parser heißen.


          Zitat von Koala Beitrag anzeigen
          Du nimmst Rohdaten und übergibst die an eine View(an ein Template)
          und diese html-View wird dann z.B. als Excel ausgegeben ?
          Das kanns doch nicht sein.
          da ich eine template engine verwende und diese austaschbar sein soll, habe ich, wie apo erwähnt hat ein zwischen view "ViewModel"
          Zitat von Koala Beitrag anzeigen
          Wenn Deine View aber je nach Renderer die Daten anders bearbeitet,
          dann ist die View abhängig vom Renderer.
          nein, ViewModel verarbeitet daten , View(template) bestimmt welche daten angezeigt werden

          Zitat von Koala Beitrag anzeigen
          Eine View ist aber ein Template oder bastelt aus verschiedenen Schnippseln (Subtemplates)
          ein Template zusammen. Anschließend oder währenddessen werden die Platzhalter
          im Template ersetzt und ausgegeben -> thats it.
          so hatte ich das vorher, da aber die Template engine nun drin ist, geht es nicht, vorher hat sich mein controller drum gekümmert, welche subtemplates angezeigt werden. wenn nun ein Front End developer ankommen würde, und sagen würde ich will nicht mehr in einem dialog was angezeigt haben. muss ich im kontroller das vorrendern unterbinden.

          jetzt habe ich aber die möglichkeit zu sagen :"Hier ist die View API es wird dabei dieses und jendes template gerendert , du hast folgende variablen"
          dann kann er selber bestimmen ob da nun ein Dialog, oder inline form etc auftaucht

          Zitat von Koala Beitrag anzeigen
          Ich kenn jedenfalls kein PHP-Framework welches MVC so umsetzt wie Du es machst.
          die wiki seite von MVVM beschreibt genau das was ich mache..
          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

          Kommentar


          • #35
            die wiki seite von MVVM beschreibt genau das was ich mache..
            ja, gut, kannst ja mal berichten ob sich Dein Ansatz in der Praxis bewährt.
            Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

            Kommentar


            • #36
              und da der Renderer neben dem View exestiert, hat man eben den Vorteil dass man den einfach switchen kann. Bei Ajax request könnte ich im grunde JSON renderer nehmen. bei XLS Export könnte ich PHPExcel als renderer verwenden usw..
              nee ...
              Die View ist austauschbar !
              Im Prinzip ist das doch die Antwort auf die Grundfrage. So halte ich es jedenfalls: View ist ein konkretes Objekt, das eine getOutput()-Methode besitzt. Variablenwerte gehen rein und ein kompletter Ausgabestring (keine Header o.ä.) kommen raus. Intern kannst Du jetzt

              - HTML direkt zusammenbasteln
              - ne TE und entsprechenden Templatecode verwalten und ansteuern
              - bspw. nen Markupparser und entsprechenden Markupcode verwalten und ansteuern

              „HMVC“ im weiteren Sinne könnte dann bspw. den Hauptinhalt aus BB-Code aus der Datenbank rendern, diesen als Box in ein Seitentemplate einbauen zusammen mit einem Widget, das bspw. einen RSS-Feed einbindet usw. Jedes Inhaltselement implementiert dabei ein View-Interface, das eben mindestens eine Render-Methode besitzt.

              Für MVC hältst Du so die View-Schicht abstrakt, verschiedene View-Prinzipien (Twig, Markup, Direktausgabe) abstrahierst Du bspw. über konkrete Basisimplementierungen von View-Klassen.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #37
                In Zend 2 gibt es mittlerweile auch ein ViewModel und die bleiben trotzdem im mvc. Habe mir das aber noch nicht genau angesehen nur Teilweise in der doku gelesen.
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                [URL]http://www.lit-web.de[/URL]

                Kommentar


                • #38
                  Der Controller ist im MVC-Pattern KEIN Datenhandlanger für den View. View und Controller haben gleichberechtigten Lesezugriff auf das Model. Du interessierst dich nicht für MVC, sondern für MVP (Model, View, Presenter).

                  Kommentar

                  Lädt...
                  X