Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] JS im MVC Layout (sinnvoll) integrieren [Zend Framework]

Einklappen

Neue Werbung 2019

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

  • [Erledigt] JS im MVC Layout (sinnvoll) integrieren [Zend Framework]

    Die gesamte Application liegt im MVC Layout vor.

    Außnahmen sind JS Plugins, welche vollkommen in der View untergebracht sind.

    Nun hat ein solches JS Plugin z.B. folgende Eigenschaft:

    PHP-Code:
    [...]
                    
    eventSources: [
                        {
                            
    url'http://application.local/get_events.php'
                        
    }
                    ],
    [...] 
    Aufgrund des Verzeichnisaufbaus liegt application.local im public Verzeichnis.

    application
    - public
    - modules
    --default
    --module1
    ---models
    ---controllers
    ---views
    Wie schafft man es nun - aus Sicherheitsgründen & um einigermaßen den Code bzw. das Dateimanagement konsistent zu halten - die get_events.php aus dem models Verzeichnis zu laden ?


    Nochmals zusammenfassend:
    In der View muss ein Dateipfad angegeben werden worüber Events aus einer Datei geparsed werden.
    Dieser Pfad zeigt automatisch auf das ./application/public Verzeichnis.

    Da jedoch alles im MVC Layout geschrieben ist, gehört der Output in eine Modelsdatei.

    Wie kann ich nun in der View eine Datei bzw. den Output eines Models "ansteuern" ?

  • #2
    Es ist immer genial.

    Man schreibt hier einen Thread und beim schreiben bzw. danach nochmals lesen kommen einen neue Ideen.

    Idee:
    Obj/Array direkt übergeben ohne Datei dazwischen.

    Lösung:
    PHP-Code:
                    eventSources: [ 
                        { 
                            
    events: [
                                {
                                    
    title'Event1',
                                    
    start'2011-04-04'
                                
    },
                                {
                                    
    title'Event2',
                                    
    start'2011-05-05'
                                
    }
                            ]
                        } 
                    ], 
    Somit kann man ganz normal über den Controller die Daten an die View übergeben.

    Ideen verbunden mit Documentations lesen hilft.

    Kommentar


    • #3
      Wenn es doch über XHR abgefragt werden soll, legst du einfach eine(n) Controller/Action an, welche(r) die Daten aus dem Model als JSON ausgibt.

      Kommentar


      • #4
        Zitat von lcrash Beitrag anzeigen
        Wenn es doch über XHR abgefragt werden soll, legst du einfach eine(n) Controller/Action an, welche(r) die Daten aus dem Model als JSON ausgibt.
        Bei solchen Antworten fasst man sich selbst an den Kopf.

        Kommentar


        • #5
          Zitat von dreamcatcher Beitrag anzeigen
          Bei solchen Antworten fasst man sich selbst an den Kopf.
          Solange man dort wenigstens was vorfindet, und die Wurstfingerchen nicht ins Leere greifen ...
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            Du erinnerst mich gerad an das Würstchenvideo von heute

            http://www.youtube.com/watch?v=CGUct...el_video_title

            Kommentar


            • #7
              Dein JS packst du in ein Model?
              "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

              Kommentar


              • #8
                Zitat von Chriz Beitrag anzeigen
                Dein JS packst du in ein Model?
                Zitat von dreamcatcher Beitrag anzeigen
                [...] JS Plugins, welche vollkommen in der View untergebracht sind. [...]
                Aus meiner Überlegung heraus gehört es auch dort hin, da es clientseitig ausgeführt wird.
                Daten, welcher per JS (XDR) nachgeladen werden, kommen nun natürlich aus dem Model.

                Falls deine Frage auf etwas anderes abzielt:
                Oder wäre es korrekt das JS in ein seperates Model mit einer Variable zu packen und diese dann durch den Controller in die View zu schleifen ?

                Kommentar


                • #9
                  Dein Gefühl ist nicht völlig verkehrt. Die Ausgabe gehört zum View. Wer sagt denn, dass diese nicht automatisch aus einem Model erzeugt werden soll (Stichwort REST)? Wenn man sich so etwas baut, dann braucht man eigentlich kein View, weil es von einem Plugin (oder was anderes...) direkt ausgegeben wird.

                  Nur das Model sollte direkt nichts ausgeben.

                  Kommentar


                  • #10
                    Ich sehe Models eher als Datenquelle bzw. Container für die Anwendungslogik. JS ist eher ein View, es liefert überhaupt keine Daten. Wenn du einen PDF-View hast, was soll dann ein JS-Model? Ich würde die JS-Dateien daher ganz normal irgendwo ablegen und lediglich bei Bedarf über ein Model oder wahrscheinlich eher den View konfigurieren/filtern.

                    Welche Vorteile erhoffst du dir durch JS als Model?
                    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                    Kommentar


                    • #11
                      Ich werfe einfach mal Sproutcore und Backbone.js in den Raum. Das sind zwei Javascript-Frameworks, die dir auch für das client-seitige Javascript eine MVC Trennung anbieten.

                      Dabei schreibst du dann unter anderem deine Modelle in Javascript benutzt eine Restful-API (die du serverseitig als Controller implementierst) um die Daten mit dem Server abzugleichen.

                      Kommentar


                      • #12
                        War ja eher eine Verständnisfrage.

                        Ansonsten bietet ExtJS inzwischen auch MVC an (Tipp).

                        Kommentar


                        • #13
                          http://jupiterjs.com/news/organize-j...ery-controller (basiert glaub ich auf Prototype1.6) oder per jQueryUI Widget Bridge: http://www.erichynds.com/jquery/usin...actory-bridge/

                          Für Client-Models ExtJS stores ansehen.
                          => http://docs.sencha.com/ext-js/4-0/ (zu Data springen)

                          Mediator Pattern
                          I like cooking my family and my pets.
                          Use commas. Don't be a psycho.
                          [URL="http://jscouch.de"]Blog[/URL] - [URL="http://coverflowjs.github.io/coverflow/"]CoverflowJS[/URL]

                          Kommentar


                          • #14
                            Zitat von lcrash Beitrag anzeigen
                            War ja eher eine Verständnisfrage.

                            Ansonsten bietet ExtJS inzwischen auch MVC an (Tipp).
                            Wow, dank dir habe ich jetzt im zweiten Mal meines Lebens ein "wow" Effekt.

                            Das erste Mal war, als ich jQuery entdeckt hatte.

                            Das zweite Mal jetzt bei ExtJS (Obwohl es mir vom Namen bekannt war).

                            http://dev.sencha.com/deploy/ext-4.0...p/desktop.html
                            http://dev.sencha.com/deploy/ext-4.0...id-access.html
                            http://dev.sencha.com/deploy/ext-4.0...ing-pager.html

                            Es gibt so gut wie gar keinen - optischen - Unterschied mehr zu einer zu einer Applikation geschrieben in Delphi o.Ä..

                            Der Hammer.
                            ________________

                            @Chriz ich gehe mal davon aus, dass die Frage an lcrash war, da ich von Anfang an aus ging es nicht in ein Model zu packen (Daher das Zitat).

                            @rudygotya & lcrash
                            extJS werde ich mir am nächsten freien Wochenende vornehmen.
                            Es sieht sehr umfangreich aus, aber auch seeehr auf die eigenen Anforderungen skalierbar.

                            Als "schnellstmöglichbeste" Lösung habe ich die erste Antwort von lcrash angewendet.

                            Kommentar

                            Lädt...
                            X