Wann macht Template wirklich Sinn!!!

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

  • Wann macht Template wirklich Sinn!!!

    Hallöchen,

    Ich brauche unbedingt einen klugen Rat bevor ich mich Detailfragen widme, und ich denke dieses Thread könnte für viele eine Menge Arbeit ersparen, wenn wir gute Antworten sammeln:

    Ich habe in den letzten Wochen so ziemlich jedes bekanntere Tutorial über Templates mit PHP gelesen, die es auf den gängigen PHP-Seiten gibt. Das eine oder andere Tutorial war auch ganz brauchbar, doch wenn ich mich nicht schon vorher mit "OOP" (ObjektOrientiertesProgrammieren in PHP) und dem Setzen von offenen Variablen in html-tags beschäftigt hätte, wäre ich verloren gewesen - zudem Einige versäumen darauf hinzuweisen, welche Vorkenntnisse nötig sind und wo man diese bekommt. Doch Eines haben fast ALLE diese Tuts versäumt genauestens zu beläuchten: nämlich die Frage wann wird ein "tmpl" WIRKLICH nötig, und vor allem WANN NICHT!!!! Das es einen Trend gibt, gut und schön, aber es ist mit viel Aufwand verbunden und sollte doch nur angewand werden, wenn man es wirklich braucht, oder? Tja und genau diese Frage stell ich mir auch. Zumal es ja auch andere Lösungen gibt, von denen zwar immer abgeraten wird, aber die für Leute mit Halbkenntnissen oft in einem gesünderen Zeitaufwand<->Ergebniss Verhältnis stehen, da man ja nun nicht deshalb ein halbes Jahr krank machen kann! Ich sitze fast jede Nacht an PHP um weiter zu kommen und das seit über einem halben Jahr und glaube schon vieles verstanden zu haben, doch es werfen sich immer neue Fragen auf, die nicht nur mit Programmierlogik zu beantworten gehen, das wird wohl jeder kennen - auch die PHP Spezielisten - und das gehört hierher wie zum Leben.

    Mal anhand eines Beispiels:

    - Ich habe 2 x 2 Webseiten (also eigentlich 2 nur in 2 verschiedenen Sprachen)
    - Diese Webseiten haben in den News und in ihren Redaktionellen Inhalten viele authentische Bereiche.
    - Daraus läßt sich schließen, daß alle 4 Webseiten viele Inhalte und Aufbauten gemeinsam haben, aber dennoch nicht identisch sind.
    - Das läßt nach Angaben der Tutorials nur die Template-Lösung zu, wenn man nicht jedes mal 4 Webseiten updaten will, wenn man eine Kleinigkeit ändern muss, da Templates es möglich machen Inhalte so zu trennen, daß wenn man eine Actions - Datei (z.b. news.txt --> news.php) ändert, sich das sofort auf allen Seiten auswirkt.
    - So weit so gut, also fang ich an mich mit templates zu beschäftigen und brauche ein halbes Jahr um festzustellen, daß templates nicht nötig gewesen wären um das zu erreichen, da man mit php schnipseln in der index datei (auslesen von URL, Pfadangaben, switch Language und include(news) ) und so weiter auch schon allerhand Auftrennung der Inhalte erreichen kann, zumal sich für mich die Frage stellt, wie schwierig wird das ganze "parsen" von templates dann in Framesets???


    Könnte nicht bitte mal jemand mit viel Sachkenntnis sich ein paar Minuten Zeit nehmen und da eine genauere Aufschlüsselung schreiben, wann denn Templates für eine Optimierung von mehreren Webseiten unausweichlich werden?? Ich würde dann sogar vorschlagen, dies dann SOFORT zu den Tutorials zu pasten.

    Danke!
    Zuletzt geändert von brüllwürfel; 27.02.2004, 13:34.
    Der String "Kommunikation" ist eine globale Konstante und Boolean und gibt in jedem Fall den Wert FALSE zurück.

  • #2
    ist wohl eher ein brainstorming. bzw soll mal eines werden. *gg*

    *VERSCHIEB*
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      *gg* - korrekt! Sorry, hab den Brainstorming Bereich noch nie gecheckt. Ich hoffe das geht nicht den Meisten auch so, dann verhungert mein thread. :-) *ghg*
      Der String "Kommunikation" ist eine globale Konstante und Boolean und gibt in jedem Fall den Wert FALSE zurück.

      Kommentar


      • #4
        Mhn, gute Frage. Benötigen tust du sie eigentlich nur, wenn du den Leuten das Arbeiten mit deiner Webseite ermöglichen willst, welche kein PHP können.

        Wenn du sauber programmieren willst dann musst du Templates benutzen, eine andere Lösung gibts da nicht. Ich z.B. würd mich umdrehen und weglaufen, wenn ich irgendwo mithelfen soll, wo keine Templates verwendet wurden.


        Floriam
        PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

        Kommentar


        • #5
          Das Ziel bei der Erstellung einer Software / eines Programmes sollte sein, Logik die zur Darstellung und die eigentliche Programmlogik zu trennen. Dadurch wird es wesentlich einfacher das Programm mit einer anderen Oberfläche zu versehen oder die Programmlogik oft wieder zu verwenden. Templates werden hierbei oft genutzt die Darstellungslogik (HTML + Templatescripting) voneinander zu trennen. Dies hat mehrere Vorteile:
          • Programm und Design können getrennt von mehreren Personen erstellt werden
          • Quelltext wird übersichtlicher
          • Änderungen sind einfacher zu realisieren.
          Bei der eingesetzten Technik gibt es jedoch sehr verschiedene Lösungsansätze. Möglich wäre eine mehr oder weniger überladene Templateengine (z.B. Smarty) zu nutzen, was imho nicht ratsam ist. Dadurch wird zum einen das Programm wesentlich langsamer und als Templateersteller muss man eine weiterer (wenn auch recht einfache) Sprache lernen.
          Ich habe eine Zeit lang selber auch mit Smarty gearbeitet, bevorzuge jetzt jedoch die einfacheren Lösungen. Dabei benutze ich als Templatesprache PHP, womit die Templates nicht geparst werden müssen. Letzendlich benutze ich eine einfache Classe dafür:
          PHP-Code:
          class Template
          {
              var 
          $_vars = array();
              
              var 
          $_filename;
              
              var 
          $_output '';
              
              function 
          Template($filename)
              {
                  
          $this->_filename $filename;
              }
              
              
              function 
          assignByRef($name, &$value)
              {
                  
          $this->_vars[$name] =& $value;
              }
              
              function 
          assign($name$value)
              {
                  
          $this->_vars[$name] = $value;
              }
              
              function 
          fetch($_filename null)
              {
                  
          extract($this->_varsEXTR_SKIP);
                  
                  
          ob_start();
                  
                  require (
          $_filename === null) ? $this->_filename $_filename;
                  
                  
          $this->_output ob_get_contents();
                  
                  
          ob_end_clean();
                  
                  return 
          $this->_output;
                  
              }

          Verwendet kann sie z.B. so verwendet werden:
          PHP-Code:
          $tpl = new Template('./templates/index.htm');
          $tpl->assign('title''Die einfachste Template Engine');
          echo 
          $tpl->fetch(); 
          Die Template Dateien beinhalten nun HTML und PHP Platzhalter:
          PHP-Code:
          <html>
          <head>
          <title><?= $title ?></title>
          </head>
          <body>
          <?php for($i=0$i<5$i++) : ?>
          <b><?= $title ?></b><br />
          <?php endfor; ?>
          </body>
          </html>
          Wenn man nicht gerne mit Klassen arbeitet kann man es sich auch noch einfacher machen. Einfach die gleiche Datei mit einer Require-Anweisung:
          PHP-Code:
          $title 'es geht noch einfacher';
          require 
          './templates/index.htm'
          So, hoffe, dass dieser kleine Beitrag etwas weiterhilft. Ein guter Artikel dazu findet man bei phppatterns.com welcher jedoch auf englisch ist.
          Zuletzt geändert von webstar85; 27.02.2004, 19:38.

          Kommentar


          • #6
            auch wenn es ihm nicht geholfen hat, MIR hast du damit MEHR ALS NUR GEHOLFEN DANKE!

            Ich bastele an einer Website für meine Schule, und da ich in 2 Jahren das AB habe, müssen die nachmir auch ohen php was dran ändern können -> templates.

            Und bis eben zu deinem post habe ich da nix gecheckt.
            Aber nun

            Danke dir für diesen ausführlichen Post!

            Kommentar


            • #7
              Ja das war sehr ausführlich.
              Auch ich danke dir für all Jene die über dieses Thread stolpern werden, dass du ihnen php templates näher gebracht hast.

              Nun aber in dem ganz speziellen Fall meiner Frage, war dieses Wissen aber eher schon Vorraussetzung, auch wenn es gut ist das hier noch einmal mit rein zu packen, also nicht falsch verstehen . Ähm, Es war eher so eine Art Ergänzung zu den bekannten Templates und Tutorials - auf die ich hierbei gehofft hatte.

              So etwas wie: "Mercerdes ist zwar ein tolles Auto, aber ich versteh nicht warum sie es zum Ziehen des Ackerpfluges benutzen wollen." Ich denke da ist Erklärungsbedarf, und zwar nicht nachgesprochen aus einem tutorial sondern nachgedacht aus einem Programmiererkopf der vielleicht sogar in einzelnen Fällen abrät klassische Template-Engines zu nutzen, weil dafür schon einfachere PHP Methoden reichen und schneller sind...


              trotzdem lieben Dank an alle die sich bis hierhin den Aufruf zu Herzen genommen haben.
              Grüße
              Zuletzt geändert von brüllwürfel; 29.02.2004, 22:48.
              Der String "Kommunikation" ist eine globale Konstante und Boolean und gibt in jedem Fall den Wert FALSE zurück.

              Kommentar


              • #8
                Ich bin der Meinung, dass Templates überall dort Sinn machen, wo im Hintergrund recht viel PHP am Werk ist. Wenn du nur einen Counter auf deiner Seite hast, und sonst alles nur fester Inhalt ist, machen Templates sicher nicht so viel Sinn.
                Wenn jedoch mehr oder weniger komplexe / ausführliche Skripte im Hintergrund laufen, um die Inhalte bereit zu stellen, dann sind Templates auf jeden Fall empfehlenswert.

                Eine Erfahrung, die ich gemacht hab ist, dass man schneller mit seinen Scripten fertig wird, weil man sich erstmal auf die komplexeren Abläufe des Hauptprogramms konzentrieren kann und hinterher an der Darstellung herumbasteln kann. Es werden also nicht ständig die "Gedankenströme" unterbrochen durch das hin- und herwechseln zwischen PHP und HTML.

                Ansonsten verwende ich Templates ungefähr so wie webstar85
                hopka.net!

                Kommentar


                • #9
                  Ich bin der Meinung, dass Templates überall dort Sinn machen, wo im Hintergrund recht viel PHP am Werk ist. Wenn du nur einen Counter auf deiner Seite hast, und sonst alles nur fester Inhalt ist, machen Templates sicher nicht so viel Sinn.
                  Wenn jedoch mehr oder weniger komplexe / ausführliche Skripte im Hintergrund laufen, um die Inhalte bereit zu stellen, dann sind Templates auf jeden Fall empfehlenswert.

                  Eine Erfahrung, die ich gemacht hab ist, dass man schneller mit seinen Scripten fertig wird, weil man sich erstmal auf die komplexeren Abläufe des Hauptprogramms konzentrieren kann und hinterher an der Darstellung herumbasteln kann. Es werden also nicht ständig die "Gedankenströme" unterbrochen durch das hin- und herwechseln zwischen PHP und HTML.

                  Ansonsten verwende ich Templates ungefähr so wie webstar85

                  EDIT:
                  Huch, jetzt ist der Post doppelt da. Sorry!
                  Zuletzt geändert von Hopka; 29.02.2004, 23:27.
                  hopka.net!

                  Kommentar


                  • #10
                    vorallem können auch in php ungeübte User das Design später ändern, ohne den eigentlichen programmcode zu gefährden.

                    Kommentar


                    • #11
                      Also, ich habe mir im Laufe der Zeit ein paar kleine Codeschnippsel zusammengeschrieben, die immer wieder benutze. Und so gut wie jedes mal sind meine simples Template-Funktionen dabei. Könnt egarnicht mehr ohne.

                      Ich glaub, ich pack sie mal zu den Codeschnippseln.

                      EDIT:
                      http://php-resource.de/forum/showthr...threadid=34658
                      Zuletzt geändert von Wotan; 03.03.2004, 09:31.

                      Kommentar


                      • #12
                        Danke für eure Tips, das sind schon mal wichtige Fakten denke ich!
                        Ich fasse zusammen:

                        (1.) Ab einer bestimmten Dominanz von PHP auf dem Projekt (genauere Angaben vielleicht? ab wann? an dem dritten Newsscript?...)
                        (2.) und wenn Design oder Inhalt durch NON_WEBEXTPERTEN später betreut werden soll und man eine Art einfache Nutzeroberfläche "Backstage" braucht ...

                        richtig so?? PS: und danke für die Codeschnipsle

                        ok, nun ein Paar diesbezüglich weiterführende Fragen die ich gesammelt habe, die zum größten Teil nirgendswo richtig beantwortet wurden, und wo ich beobachten konnte wie Newbies im Regen gelassen wurden >>

                        1. Wie muß man sich die Funktion von Templates bildlich vorstellen?? Es wird von "parsen" geredet und von "cachen" der User"sessions". Nach längerem Überlegen kommt man dahinter, dass es damit zu tun haben könnte, dass wenn zwei User gleichzeitig auf die Website zugreifen wollen, Konflikte bei der Zuordnung von angeklickten Siteelementen (ID's) geschehen können, da ja alles über ein und die selbe Scriptmachinerie läuft (Und PHP ist nunmal Serverseitig und nicht Browserseitig). Kann nicht mal jemand ein literarisches Bild entwerfen, wie man sich den Funtionskreislauf vorzustellen hat. Dann kann der Newbie beim scrollen der Scripte auch viel sich selbst beibringen, wenn er als Nichtprogrammierer ersteinmal bildlich verstanden hat wie das funktioniert (Bitte nicht wie in den Tutorials --> Richtungspfeile wie bei Stromkreisläufen wären da nicht schlecht.)

                        2. Wie stark beeinflußt eine aufwendige Template Engine den Flow und die Geschwindigkeit der Site?

                        3. Gibt es Probleme mit der Nutzung von Frames für Navigation (man sieht bei vielen großen Portalen die mit PHP umgesetzt sind, dass auf Frames verzichtet wurde und jedesmal die ganze Seite neu hochlädt wenn ein "Sublink" gedrückt wird.)

                        4. Gibt es Probleme bei Suchmachinen wegen Inhaltssuche - und wenn, wie löse ich sie???

                        5. Die "10 typischsten Fehler" beim Einstieg in Templateprogrammierungen (laßt andere an euren Erfahrungen teilhaben, das spart Zeit und unnütze Umwege)

                        6. Tips und Kritik zu gängigen Template Engines beim Download (Userfreundlichkeit und Verständlichkeit im Vordergrund)

                        _________

                        So, nu dazu warum ich mir soviel Zeit für die Fragen nehme statt für die Antworten: Da ich halbwissend bin und außer Sitecontroller, Newsmangement und Artikelmanagement noch nicht viel auf die Reihe gekriegt hab, kann ich hier nur an die Profies weiterreichen, damit mein Halbwissen hier keinem unnütze Arbeit macht oder schadet. Aber Danke im Vorraus, denn ich denke dieses Thread wird vielen helfen, auch mir ---> vielleicht sollte man es dann bei Google anmelden

                        Liebe Grüße "Der Brüller"
                        Zuletzt geändert von brüllwürfel; 03.03.2004, 02:55.
                        Der String "Kommunikation" ist eine globale Konstante und Boolean und gibt in jedem Fall den Wert FALSE zurück.

                        Kommentar


                        • #13
                          Ab einer bestimmten Dominanz von PHP auf dem Projekt (genauere Angaben vielleicht? ab wann? an dem dritten Newsscript?...)
                          imho vergrößert sich die präsens von php in deinen seiten mit deiner erfahrung, ich persönlich könnte keine statischen html-seiten mehr erstellen, mir würde was fehlen. darum denke ich, ist es von anfang an angebracht, tpl zu verwenden ... so hast du später zumindest nicht die arbeit, misch-seiten auf tpl umzustellen ...

                          1. Wie muß man sich die Funktion von Templates bildlich vorstellen?? Es wird von "parsen" geredet und von "cachen" der User"sessions".
                          also, du definierst von mir aus blöcke ala
                          Code:
                          {{BEGIN:KONTAKT}}
                          <div class="row">
                            <div>
                              <a
                                href="mailto:{{EMAIL}}"
                                title="Mail an {{NAME}} schreiben"
                              >
                                <img
                                  alt="Mail an {{NAME}} schreiben"
                                  src="{{IMAGE}}"
                                />
                              </a>
                            </div>
                            <div>
                              {{NAME}}: {{DESCRIPTION}}
                            </div>
                          </div>
                          {{END:KONTAKT}}
                          welche du dann mehrmals parsen kannst, indem du sie halt vorher mit inhalt füllst, und sie dann parsed ...
                          PHP-Code:
                            while ($Row mysql_fetch_array($Result)) {
                              
                          $Tpl->setRewriter ('NAME'$Row['name']);
                              
                          $Tpl->setRewriter ('EMAIL'$Row['email']);
                              
                          $Tpl->setRewriter ('DESCRIPTION'$Row['description']);
                              
                          $Tpl->parseCurrentBlock();
                            } 
                          zb. also, die tpl-engine schnappt sich halt die blöcke und füllt sie, ein oder mehrmals

                          cachen kannst du seiten, die sich nur alle 20 tage ändern, dann muß das tpl nicht neu geparsed werden, sondern es wird halt das schon geparste geschickt ...

                          3. Gibt es Probleme mit der Nutzung von Frames für Navigation (man sieht bei vielen großen Portalen die mit PHP umgesetzt sind, dass auf Frames verzichtet wurde und jedesmal die ganze Seite neu hochlädt wenn ein "Sublink" gedrückt wird.)
                          nee, generell sollte es da keine probleme geben ... das leute auf frames verzichten, liegt imho am guten geschmack.

                          4. Gibt es Probleme bei Suchmachinen wegen Inhaltssuche - und wenn, wie löse ich sie???
                          nicht mehr und nicht weniger als bei sonstigen php-seiten (schau mal im thread 'suma-freundliches programmieren' (oder so))

                          OffTopic:
                          und nun das comedy-wetter mit bernd "Der Brüller" brot
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            Ich finde das Paradox.

                            Es heisst Trennung von Design und Code.

                            Design = HTML und Code = PHP

                            Das ist schon genug getrennt.

                            Ich würde lieber reine HTMl Dateien erstellen, in die der Programmiere später die schleifen oder kleine codes mit <? php ?>einfügt.

                            Imho sind Templates absoluter schwachsin.

                            Dann soll der Programmierer einfach eine liste mit Variablen erstellen, die der Designer dann einfügt. Ich denke das bisserl PHP einem Designer zu zeigen ist wesentlich einfacher als sich ein komplettes Templatesystem mit all seinen macken zu erarbeiten.

                            Man kann auf ein Blatt schreiben was der Designer wissen muss und das wars.

                            just my 2 cents

                            cya max


                            An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

                            Kommentar


                            • #15
                              1. Wie muß man sich die Funktion von Templates bildlich vorstellen?? Es wird von "parsen" geredet und von "cachen" der User"sessions".
                              inhalt (aus datenbank) --> variablen/arrays + tpl-angabe--> tplengine --> html-code --> gespeichert in einer variablen --> uU erneuter durchlauf durch die tpl-engine --> ausgabe (echo/write2file)
                              2. Wie stark beeinflußt eine aufwendige Template Engine den Flow und die Geschwindigkeit der Site?
                              was ist aufwendig? ... eine gute engine sollte sich auch bei einer umfangreichen site im bereich von 0,001 - 0,009 sec bewegen, imho... http://tbt.dyndns.org/tpl_benchmark/tpl_bench_1.php
                              3. Gibt es Probleme mit der Nutzung von Frames für Navigation (man sieht bei vielen großen Portalen die mit PHP umgesetzt sind, dass auf Frames verzichtet wurde und jedesmal die ganze Seite neu hochlädt wenn ein "Sublink" gedrückt wird.)
                              das ist nicht nur eine frage des stils, sondern auch der sitestruktur ... wenn ich nur eine menüebene habe, kann ich auch mit frames arbeiten (vorausgesetzt ich will deren nachteile in kauf nehmen) ... bei einer tieferen verzweigung ist das schwachsinn, da ich auch die navigationsseite neu laden muss. die alternative, über ein javascript menü zu gehen und die komplette navi in der seite zu hinterlegen, halte ich für suboptimal.
                              4. Gibt es Probleme bei Suchmachinen wegen Inhaltssuche - und wenn, wie löse ich sie???
                              mod_rewrite, (zusätzliche) ausgabe als html-datei, ...
                              5. Die "10 typischsten Fehler" beim Einstieg in Templateprogrammierungen (laßt andere an euren Erfahrungen teilhaben, das spart Zeit und unnütze Umwege)
                              - kein plan von html (1-5)
                              - php-code im template (6-10)
                              ... oder meintest du die programmierung einer tpl-engine?
                              6. Tips und Kritik zu gängigen Template Engines beim Download (Userfreundlichkeit und Verständlichkeit im Vordergrund)
                              kommt es nicht erst auf performance an und dann auf andere kriterien? andererseits, wer es verstehen will, sollte sich eine kleine engine selber schreiben ... vorteil: du bestimmst die benutzerfreundlichkeit und den funktionsumfang ... ansonsten ist der benchmark-link auch ein guter anhaltspunkt.
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X