Ankündigung

Einklappen
Keine Ankündigung bisher.

HMVC Frage

Einklappen

Neue Werbung 2019

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

  • HMVC Frage

    Hallo,
    ich frage mich schon seit Tagen wie bzw. welche "Methoden" es gibt um die Seite bzw. die Controller(mehrere) zu laden und auszugeben(mit nur einem HTTP Request)? Der PageController könnte ja ein "Master-Template" haben... aber wie könnte man es eleganter lösen?

  • #2
    Redest du von einem Layout?
    "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

    Kommentar


    • #3
      Ja ^^ wer baut das Layout zusammen und welche Möglichkeiten gibt es dafür?

      Kommentar


      • #4
        Dafür gibt es definitiv eine Möglichkeit: das APF. Dieses implementiert das Pattern und stellt eine generische Schnittstelle zur Beeinflussung des erzeugten DOM-Baumes auf Basis von Taglibs bereit. Alternative Lösungen sind mir nicht bekannt.
        Viele Grüße,
        Dr.E.

        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        1. Think about software design [B]before[/B] you start to write code!
        2. Discuss and review it together with [B]experts[/B]!
        3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
        4. Write [I][B]clean and reusable[/B][/I] software only!
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        Kommentar


        • #5
          aber wie könnte man es eleganter lösen?
          Was heißt schon elegant? Ich habe das Gefühl, dass Du nur sehr rudimentäre Vorstellungen von Deiner eigenen Idee hast.
          [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


          • #6
            Naja mit elegant meinte ich eig. eine andere Möglichkeit als ein "Master-Template" oder in dem Fall vom APF Taglibs

            Kommentar


            • #7
              Du willst mir also erzählen, dass ein Master-Template und Taglibs unelegant sind?
              Viele Grüße,
              Dr.E.

              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              1. Think about software design [B]before[/B] you start to write code!
              2. Discuss and review it together with [B]experts[/B]!
              3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
              4. Write [I][B]clean and reusable[/B][/I] software only!
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

              Kommentar


              • #8
                Sry ich wollte damit eher sagen ob es eine alternative dazu gibt(elegant war jetzt nur eine Umschreibung)

                Kommentar


                • #9
                  Hallo Frucht,

                  mir scheint, du hast HMVC irgendwo aufgeschnappt, die Idee dahinter aber noch nicht verstanden. Das HMVC-Pattern beschreibt eine hierarchische Struktur von MVC-Knoten, um Applikationen - genauer GUI-Strukturen - besser segmentieren zu können. Hierarchische Strukturen sind in der Regel Bäume und diese wiederum haben eine Wurzel (Root-Knoten/Master-Template). Ob dieses nun statisch einem Page-Controller übergeben wird oder eine andere Komponente bestimmt, welches Ausgangs-Template geladen wird ist dabei zweitrangig. Es gibt also keine andere Möglichkeit eine Baum-Struktur aufzubauen, wenn du nichts in der Hand hast.

                  Was die Taglibs angeht, gibt es sicher Alternativen, jedoch schränken dich diese immer in der Erweiterbarkeit deiner Applikation ein. Taglibs haben in diesem Zusammenhang sowohl den Vorteil, dass du eigene Tags schreiben und damit einen sehr hohen Grad an Wiederverwendbarkeit schaffst und den Aufbau und die Transformation des Baumes selbst - auf Basis des APF-Page-Controllers beeinflussen kannst. Nutzt du lediglich einfache Platzhalter für die Erzeugung der Ausgabe, hast du keinen Einfluss auf das Timing-Modell.

                  Ich würde dir - wie auch in Post #4 angesprochen - empfehlen, eine fertige Lösung einzusetzen und nicht nach Alternativen suchen und versuchen, diese selbst zu implementieren. Das kostet extrem Zeit und diese kannst du effektiver in die Einarbeitung stecken.
                  Viele Grüße,
                  Dr.E.

                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                  1. Think about software design [B]before[/B] you start to write code!
                  2. Discuss and review it together with [B]experts[/B]!
                  3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                  4. Write [I][B]clean and reusable[/B][/I] software only!
                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                  Kommentar


                  • #10
                    @Frucht

                    Schau dir mal Kohana 3 an das bassierd auf HMVC ist eine fertige Lösung die du nur noch einsetzen mußt dazu auch noch sehr klein und schnell.

                    Download unter:
                    Kohana v3.x - Files - Kohana Development

                    Mfg Splasch

                    Kommentar


                    • #11
                      Zitat von splasch Beitrag anzeigen
                      @Frucht

                      Schau dir mal Kohana 3 an das bassierd auf HMVC ist eine fertige Lösung die du nur noch einsetzen mußt dazu auch noch sehr klein und schnell.

                      Download unter:
                      Kohana v3.x - Files - Kohana Development

                      Mfg Splasch
                      Ich glaube weniger das dies eine Fertiglösung ist! Kein Framework ist eine Fertiglösung. Es hilft dir nur schneller zu programmieren..

                      Kommentar


                      • #12
                        mir scheint, du hast HMVC irgendwo aufgeschnappt, die Idee dahinter aber noch nicht verstanden.
                        Genau : ) ich hab mir schon ein paar Beiträge durchgelesen aber noch nicht alles verstanden(über google findet man nicht so viel wie zu mvc)

                        btw ich lese auch gerade diesen Thread durch : )

                        Ich würde dir - wie auch in Post #4 angesprochen - empfehlen, eine fertige Lösung einzusetzen und nicht nach Alternativen suchen und versuchen, diese selbst zu implementieren. Das kostet extrem Zeit und diese kannst du effektiver in die Einarbeitung stecken.
                        Ich wollte eig. was zu diesem Thema lernen deswegen wollte ich keine fertige Lösung nutzen.

                        @splasch Kohana 3 guck ich mir gerade an

                        Kommentar


                        • #13
                          Wenn du dir fertige Lösungen ansiehst, solltest du das APF ebenfalls in deine Betrachtungen einbeziehen. Kohana hat hinsichtlich HMVC nur eine rudimentäre Umsetzung zu bieten. Das APF setzt hier auf eine Page-Controller-Implementierung, die dir die oben beschriebenen Vorteile der Abstraktion, Kapselung und Wiederverwendung bringt.
                          Viele Grüße,
                          Dr.E.

                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          1. Think about software design [B]before[/B] you start to write code!
                          2. Discuss and review it together with [B]experts[/B]!
                          3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                          4. Write [I][B]clean and reusable[/B][/I] software only!
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                          Kommentar


                          • #14
                            Ich habe es bei meinem eigenen Framework so gemacht, dass man innerhalb eines Controllers einen weiteren Controller laden kann, etwa so:

                            PHP-Code:
                            class Controllername extends AppController {
                              public function 
                            page() {

                                 
                            $a = new Controller('controllername2');
                                 
                            $a->setAction('page2');
                                 
                            $a->run();

                              }

                            Kommentar


                            • #15
                              @dsentker:
                              Genau das meinte ich mit fehlender Abstraktion, Kapselung und Wiederverwendung! Das mag für den einfachen Anwendungsfall passen, du willst aber sicher nicht alle Abhängigkeiten eines Moduls in einem Controller auflösen oder dich in einem speziellen Controller darum kümmern müssen, welche Parallel-Controller existieren. Gerade bei komplexen GUI-Strukturen ist das wirklich problematisch.
                              Viele Grüße,
                              Dr.E.

                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              1. Think about software design [B]before[/B] you start to write code!
                              2. Discuss and review it together with [B]experts[/B]!
                              3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                              4. Write [I][B]clean and reusable[/B][/I] software only!
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                              Kommentar

                              Lädt...
                              X