Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

templates und webserverprogrammierung

Empfohlene Antworten

Veröffentlicht

Hallo hab ich letzter Zeit öfters was von Templates gelesen. Im Zusammenhang mit Webserverprogrammierung, CMS und Webdesign.

Aber was das genau ist versteh ich nicht.

schau mal z.b. unter http://smarty.php.net nach.

Durch Templates trennt man den eigentlichen Code vom Design, was meiner Meinung nach auch äußerst sinnvoll ist!

Gruß,

Markus

hmm, so weit mein Englisch reicht hab ich das so verstanden:

Irgendwo liegen Dateien mit eigentlichem html layout mit platzhaltern. Wenn ich die Klasse smarty einbinde kann ich durch methoden Inhalte in diese Platzhalter einfügen. Smarty ließt das layout ein und füllt die Seite dynamsich mit den Inhalten aus und macht dann endgültig eine Seite für den Client daraus.

??

ja so könnte man das ausdrücken.

- layouts (Templates) werden mit platzhaltern im "template dir" abgelegt (dies kann auch eine DB sein)

- Smarty variablen werden mit inhalt gefüllt

- Smarty zeigt die Templates mit den gefüllten Platzhaltern an

Templates können dabei alle Mögliche formen annehmen.

CSS/XML/HTML/CSV/-Dateien,etc.

Smarty bietet darüber hinaus noch sehr viele andere schöne Mechanismen.

Caching/Outpufilter/etc...

Wenn man allerdings nur die eigentliche Template Engine verwendet, erzeugt smarty einen recht großen overhead...

Gruß,

Markus

Ich find Smarty und auch andere Template-Parser meist zu voll gepackt. Man wird vllt. 5% des ganzen Umfangs des Parsers nutzen (können) und von daher finde ich diese Parser für den Anfang und für kleine Projekte ein wenig zu gross. Also ich habe mir selbst einen eigenen Parser gebastelt der mir ein paar kleine Sachen bereitstellt, wie PHP Skript ausführen, Dateien einbinden, If-Anweisung, Datum, Uhrzeit etc. alles mit Platzhaltern. Somit muss man sich in PHP nicht auskennen um z.B. ein Datum o.ä. auszugeben. Derzeit bastel ich mir noch Caching hinzu, da es ja auch ganz sinnvoll ist sowas zu haben.

Also dazu kann ich nur sagen, dass ich eigentlich für alle Projekte die ich ohne CMS mache PHP als Template Engine.

Siehe dazu:

http://www.phppatterns.com/index.php/article/articleview/4/1/1/

Versteh grad deinen Satz nicht ganz *aufmschlauchsitz*

Findest du jetzt Templates gut oder schlecht?

Ein Kollege hat sich einach ne PHP Klasse gebaut, die den ganzen html code ausgibt z.B. Tabellen, formulare....denke dass das ein guter "Mittelweg" ist.

Versteh grad deinen Satz nicht ganz *aufmschlauchsitz*

Findest du jetzt Templates gut oder schlecht?

sorry hab wohl nen wort vergessen.

Ich finde Template Engines SUPER! ;)

Es muss nur dem Projekt entsprechend die richtige gewählt werden...

Wie z.b. o.g. ist Smarty, wenn nur als Templateengine eingesetzt eigentlich für jedes Projekt ZU VIEL.

Nochmal um auf meinen "komischen Satz" zurückzukommen...

Beispiel Template:

Smarty:


<h1>{ $headline }</h1>

"PHP":

<h1><?php echo $headline ?></h1>

Im Prinzip ist das ja beides das gleiche, nur das die 2. Variante um einiges schneller sein wird, da ich dazu keine 5000 Zeilen Lange Templateengine einbinden brauch,...

PHP selbst ist auch eine Templateengine...

Das ganze dann in eine kleine Klasse gepackt und man hat nen Templateparser, ohne jeglichen overhead!

Gruß,

Markus

Im Prinzip ist das ja beides das gleiche, nur das die 2. Variante um einiges schneller sein wird, da ich dazu keine 5000 Zeilen Lange Templateengine einbinden brauch,...
Da wäre ich aber sehr vorsichtig. Nur weil eine Template-Engine bei der Verarbeitung mit ins Spiel kommt heisst das noch lange nicht, dass deswegen die Verarbeitung langsamer sein muss. Das kann natürlich der Fall sein, es könnte aber auch genau der entgegengesetze Fall eintreten, und gerade durch den Einsatz einer Template-Engine könnte ein Geschindigkeitsvorteil entstehen. Das hängt davon ab, wie die Engine implementiert ist.

Es geht ja auch darum, wie skaliert mein System also wie verhält es sich, wenn Anfragen und die übertragene Datenmenge zunimmt. Da kann es dann schon sein, dass System 1 was auf den ersten Blick einfacher und schneller aussieht bei 1000 Anfragen pro Minute plötzlich kaum noch Daten liefert, während System 2, was total aufgebläht und unnütz wirkt noch ohne Probleme die Requests abarbeiten kann.

Performance isoliert vom Einsatzzweck zu betrachten und generell zu sagen "Ne, das ist aber total unnütz, weil..." macht keinen Sinn.

Da wäre ich aber sehr vorsichtig. Nur weil eine Template-Engine bei der Verarbeitung mit ins Spiel kommt heisst das noch lange nicht, dass deswegen die Verarbeitung langsamer sein muss. Das kann natürlich der Fall sein, es könnte aber auch genau der entgegengesetze Fall eintreten, und gerade durch den Einsatz einer Template-Engine könnte ein Geschindigkeitsvorteil entstehen. Das hängt davon ab, wie die Engine implementiert ist.

Ich bin der Meinung, wenn keine mechanismen wie Caching, etc verwendet werden, ist eine reine PHP Seite auf jeden Fall schneller....

Man kann ja destotrotz z.b. AdoDB als Datenbankklasse verwenden, man ist ja nicht zwangsweise an eine TemplateEngine gebunden...

Wenn die Template Engine nicht aus reinen C-files etc. besteht kann sie unmöglich schneller sein als reines PHP, da es ja auf PHP aufbaut...

(Ausser man verwendet wie o.g. Caching mechanismen)

Gruß,

Markus

Man kann ja destotrotz z.b. AdoDB als Datenbankklasse verwenden, man ist ja nicht zwangsweise an eine TemplateEngine gebunden...

Wenn die Template Engine nicht aus reinen C-files etc. besteht kann sie unmöglich schneller sein als reines PHP, da es ja auf PHP aufbaut...

(Ausser man verwendet wie o.g. Caching mechanismen)

Achtung: Eine Template-Engine muss nicht zwangsläufig auf PHP aufsetzen! In dem speziellen Fall, wenn sie das tut, wäre natürlich die Laufzeit tatsächlich langsamer: PHP mit Aufsatz ist langsamer als PHP ohne Aufsatz - das ist simple Physik :)

Aber ich kenne zig andere Template-Engines, die nicht auf PHP sondern auf anderen Sprachen aufsetzen. Und da kannst du dann nicht mehr pauschal sagen "Das ist schneller" bzw. "Das ist langsamer als PHP".

Und wer mehr arbeiten muss, braucht auch länger :)

Dieser Grundsatz stimmt aber auch ohne Physik... :P

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.