Template Klasse

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

  • Template Klasse

    Hallo!

    Ich möchte eine mini Templateklasse schreiben.
    Folgendes Problem:

    PHP-Code:
    /* meinTemplate.php */
    Name: $nameVar
    Array: <? print_r($array)?>
    PHP-Code:
    /* Test.php */
    $Template->assign("nameVar""Hans");
    $Template->assign("array"$meinArray);
    $Template->display("meinTemplate.php"); 
    Wie kann ich in meinTemplate.php mit PHP auf die Vars/Arrays zugreifen? Ich möchte PHP in den Templates im vollen Umfang nutzen können.

    Wie kann ich ein Array aus der Test.php in dei meinTemplate.php stecken?

    Template Klassen gibt es viele, aber die sagen mir nicht zu.

    Ein Codeschnipsel wär nett. Der Rest ist dann kein Problem mehr.

    Vielen Dank!
    carapau
    Lasst euch nicht lumpen, hoch den Humpen!

  • #2
    Wie kann ich in meinTemplate.php mit PHP auf die Vars/Arrays zugreifen? Ich möchte PHP in den Templates im vollen Umfang nutzen können.
    Da brauchst du eine zusätzliche Funktion:

    getAssignedValue($name)

    Musst allerdings noch irgendwie die Instanz aus der Haupt-Datei in die Template-Datei bekommen.

    Aber insgesamt ist das eigentlich Unsinn. Entweder das eine, oder das andere. Wenn du mit PHP arbeiten willst, solltest du meiner Meinung nach auf die Template-Egine verzichten.

    Du kannst auch einfach im Script die Variablen definieren:

    PHP-Code:
    $tpl['value'] = 'Test';
    $tpl['array'] = array(...); 
    und in der "Template"-Datei (falls die überhaupt notwendig ist) einfach

    <?=$tpl['value']?> Verwenden. Und auf das Array kannst du auch ganz normal zugreifen.
    Zuletzt geändert von TobiaZ; 04.07.2008, 13:38.

    Kommentar


    • #3
      Naja, ich möchte halt Logik vom Design trennen. Ob jetzt Smarty-Schleife oder PHP-Schleife - wo ist da der Unterschied?

      Vom Aufbau sollte es aber wie bei jeder Templateengine sein!

      getAssignedValue($name) wär ziemlich nervig, geht das nicht einfacher?
      Lasst euch nicht lumpen, hoch den Humpen!

      Kommentar


      • #4
        Naja, ich möchte halt Logik vom Design trennen. Ob jetzt Smarty-Schleife oder PHP-Schleife - wo ist da der Unterschied?
        Beides ist ne Logik, die du jedoch nicht im Programmcode unterbringen willst, sondern in einer "Vorlage". Eigentlich nicht sinn der Sache.

        Und wenn du dir mal einige mit Smarty umgesetzte Projekte ansiehst, dann merkst du auch schnell, warum das dort so umgesetzt wird. weil einfach nicht nach dem EVA-Prinzip gearbeitet wird.

        getAssignedValue($name) wär ziemlich nervig, geht das nicht einfacher?
        Noch einfacher als auf ne Methode der Klasse zuzugreifen? nein. Und vermutlich wird nichtmal das sauber funktionieren.

        Also ich klink mir hier aus. Vielleicht ist jemand ähnlicher Meinung wie du und kann dir besser helfen als ich.

        Gruß

        Kommentar


        • #5
          Guck dir an, wie Views im Zend Framework gemacht werden. Das ist IMHO state of the art, ohne "Template-System" aber dennoch ordentliche Trennung von Verarbeitung und Anzeige.
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Original geschrieben von unset
            Guck dir an, wie Views im Zend Framework gemacht werden. Das ist IMHO state of the art, ohne "Template-System" aber dennoch ordentliche Trennung von Verarbeitung und Anzeige.
            Hast zufällig einen Link parat?
            Lasst euch nicht lumpen, hoch den Humpen!

            Kommentar


            • #7
              http://framework.zend.com/manual/en/zend.view.html

              Kommentar


              • #8
                Original geschrieben von onemorenerd
                http://framework.zend.com/manual/en/zend.view.html
                perfekt, genau so will ichs haben!
                Lasst euch nicht lumpen, hoch den Humpen!

                Kommentar


                • #9
                  Original geschrieben von carapau
                  perfekt, genau so will ichs haben!
                  Aber wie lässt sich das ganz einfach realisieren?
                  Lasst euch nicht lumpen, hoch den Humpen!

                  Kommentar


                  • #10
                    Guck dir den Quelltext an!
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      Also ich mache in meiner Display-Funktion erstmal ein extract auf das Array mit den Variablen und dann include ich die Template-Datei.
                      hopka.net!

                      Kommentar

                      Lädt...
                      X