Ankündigung

Einklappen
Keine Ankündigung bisher.

Grundfrage Templatesystem

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

  • Grundfrage Templatesystem

    Hi Leute,

    wer hat schon mal den Versuch unternommen DOM direkt zu manipulieren statt z.b. HTML-Templates über Maskierte Positionen zusammen zu setzen?
    Ich hatte als Grundüberlegung gedacht, das es immer besser ist vorhandene Möglichkeiten auszureitzen bevor man anfängt das Rad bzw die Sprache neu zu erfinden.
    In alten Porjekten hatte ich mir eine Klasse zusammengebaut die HTML rekursiv selbständig über Maskierungen in HTML zusammensetzt. Aber ich frag mich ob es besser ist HTML aus Templates und aus dynamischen Objekten zusammen zu bauen und das Zusammensetzen der HTML-Teile über DOM-Operationen organisiert. Ich werd sicher meine Erfahrung damit sammel und noch ist auch kein produktiver Einsatz geplant, aber ich hab so eine Vorahung, dass ich über DOM gleich mehrere Probleme abfangen könnte. z.b. wäre es denkbar mit gleichen HTML-Objekte die über Klassen erzeugt wurde, sowohl Ajax zu versorgen um Teile nachzuladen und auch den ersten Aufbau der Seite mit den gleichen Objekten zu organisieren. Einerseitz hab ich vor, weiterhin statisches HTML für das Grundgerüst einzuhämmern. Möchte aber für Tabellen und Formulare eigene Klassen erstellen, weil ich damit auch die Validierung dynamisch gestalten kann.

    Gibt es Argumente die dafür und dagegen sprechen DOM oder Template-Klassen zu verwenden?
    bitcoin.de <- Meine Freelancerwährung


  • #2
    Ich bin mir nicht sicher ob ich deine Frage richtig verstehe, aber ich kann mal grob einwerfen wie ich das mache. Grundsätzlich versuche ich HTML nicht hinter Klassen o.ä. zu verstecken. HTML schreibe ich grundsätzlich in .html-Dateien (serverseitig sind das dann meistens Twig-Templates) und wiederverwendbare Fragmente / Komponenten oder Layouts werden entsprechend ausgelagert. Wenn ich also bspw. eine Komponente baue die eine Liste ausgibt, dann könnte das so aussehen:

    index.html
    HTML-Code:
    <h2>Some users</h2>
    <p>Blabla</p>
    
    {% include 'components/list.html' with {rows: users} %}
    list.html
    HTML-Code:
    <div class='list'>
      {% for row in rows %}
      <div class='list-item'>
        <!-- render list item -->
      </div>
      {% endfor %}
    </div>

    Kommentar


    • #3
      @alpha: welchen Vorteil siehst Du in der direkten Dom-Manipulation gegenüber existierenden Template-Engines? Es sei denn, es geht Dir ums lernen.

      Kommentar


      • #4
        Ich seh als ersten Vorteil, eine vorhandene Sprache zu nutzen statt sich eine Neue einfallen zu lassen. Ein weiterer Grund wäre die Dom-Objekte mit PHP objektorientiert zu manipulieren. Und den Vorteil keine fremden Codebestandteile in den und keine Logik in die HTML-Templates zu verlagern.
        bitcoin.de <- Meine Freelancerwährung

        Kommentar


        • #5
          Dann verwende doch einfach PHPTAL:

          https://phptal.org/

          Kommentar


          • #6
            Zitat von Alpha Beitrag anzeigen
            Ich seh als ersten Vorteil, eine vorhandene Sprache zu nutzen statt sich eine Neue einfallen zu lassen.
            Du kannst auch einfach Plain-PHP für deine Templates nutzen.

            Zitat von Alpha Beitrag anzeigen
            Ein weiterer Grund wäre die Dom-Objekte mit PHP objektorientiert zu manipulieren.
            Ich verstehe den Vorteil nicht so ganz. Wieso willst du serverseitig ein DOM erzeugen und manipulieren um letztlich statisches HTML auszuspucken? Du kannst deine Ideen aber gerne (auch anhand von Beispielen) näher erläutern, dann können wir sinnvoll darüber diskutieren.

            Zitat von Alpha Beitrag anzeigen
            Und den Vorteil keine fremden Codebestandteile in den
            In den? Templates?

            Zitat von Alpha Beitrag anzeigen
            und keine Logik in die HTML-Templates zu verlagern.
            Wenn du im PHP-Kontext bleibst ist die Versuchung deine "Templates" mit Logik vollzuballern deutlich größer. Wenn du bspw. Twig nutzt bist du ziemlich eingeschränkt. Du kannst also gar nicht allzu viel Logik in die Templates packen und bist gezwungen das vorher zu erledigen.

            Kommentar

            Lädt...
            X