php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.05.2005, 00:12  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von VolkerK
Aber das trifft doch auf das Beispiel zu.
Wir wollen uns nicht streiten, Volker. Wenn der OP KTemplate durchackert und versteht (er muß die Klasse ja nicht einsetzen), dann hat das einen wesentlich größeren Lerneffekt, weil er auf diese Art und Weise etwas PCRE lernt, etwas OOP und etwas Projektplanung.

Ich hatte mich damals mit FastTemplate beschäftigt, als ich wegen der zeitraubenden HTML Bastelei die Faxen dicke hatte.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.05.2005, 00:13  
Gast
 
Beiträge: n/a
Standard

Hi meikel,

danke für die Anstöße, die werde ich mir morgen mal in ruhe zur gemühte führen.

Zitat:
Ein Template ist für mich ein (HTML) Formular (Dokument) mit freien Feldern (Platzhaltern), welches von der Templateklasse ausgefüllt und bei Bedarf angezeigt wird.
.... schwerer Satz :P

Ich Hoffe das ich den dann morgen verstanden habe.

bis dahin

greetz

Rikku
 
Alt 16.05.2005, 00:15  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Rikku
PHP setzt vor einem "include()" befehl die abschließenden PHP-Tags "?>". Wenn also die includierte Datei nicht mit "<?" wieder anfängt wird "natürlich" der Text als
... ganz normales HTML gesendet. So oder so ähnlich stehts übrigens auch im Handbuch drin.
 
Alt 16.05.2005, 00:16  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Rikku
.... schwerer Satz :P
Ich Hoffe das ich den dann morgen verstanden habe.
Na klar verstehst Du den. Meinste, ich würde mir sonst soviel Mühe geben? <ggg>
 
Alt 16.05.2005, 00:19  
Gast
 
Beiträge: n/a
Standard

http://php.net/include
Zitat:
When a file is included, parsing drops out of PHP mode and into HTML mode at the beginning of the target file, and resumes again at the end. For this reason, any code inside the target file which should be executed as PHP code must be enclosed within valid PHP start and end tags.
 
Alt 16.05.2005, 00:21  
Gast
 
Beiträge: n/a
Standard

Aus dem PHP-Handbuch über include():

Zitat:
Beim Einbinden einer Datei wechselt der Parser vom PHP-Modus zu Beginn der Zieldatei in den HTML-Modus und kehrt am Ende der eingebunden Datei wieder in den PHP-Modus zurück. Deshalb muss jeglicher Code innerhalb der eingebundenen Datei, der als PHP-Code ausgeführt werden soll, von gültigen PHP-Start- und Ende-Tags eingefaßt sein.
oops...

schon ein wenig länger her das ich mir die include() Referenz angesehen habe.

Tschuldigung.

greetz

Rikku
 
Alt 18.05.2005, 23:18  
Gast
 
Beiträge: n/a
Standard

Hi,

wollte nochmal auf dieses Thema zurückkehren, nachdem ich mir ein paar Template Klassen überflogen habe. Bei den meisten Klassen die ich mir angesehen habe wird im Template "richtige" Platzhalter benutzt also keinen PHP-Code, jedenfalls vorerst. Das Template wird Komplett eingelesen und über preg_match() die Platzhalter (jetzt doch) durch PHP-Code ersetzt, meistens Objekte die Methoden haben um die Platzhalter mit ihrem Inhalt zu füllen. Also "fast" so wie mein erster Ansatz. Teilweise wird nach dem ersten Parsen des Templates dieses auch gecached. Erkenntniss die ich bis hierhin gewonnen habe ist, schluß endlich das Template "auch" PHP-Code beinhaltet. Nur nicht über include(), sondern vieleicht etwas eleganter, wobei über geschwindigkeiten da überhaupt nichts aussagen kann.

@ meikel

ist das (für dich) der richtige Ansatz einer Template - Engine?

Wenn ja habe ich deinen "schweren" Satz ja verstanden und ich könnte mich an solch einer kleinen Lösung probieren.

Lust hätte ich schon :P

greetz

Rikku
 
Alt 19.05.2005, 06:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Rikku
wollte nochmal auf dieses Thema zurückkehren, nachdem ich mir ein paar Template Klassen überflogen habe. Bei den meisten Klassen die ich mir angesehen habe wird im Template "richtige" Platzhalter benutzt also keinen PHP-Code, jedenfalls vorerst. Das Template wird Komplett eingelesen und über preg_match() die Platzhalter (jetzt doch) durch PHP-Code ersetzt, meistens Objekte die Methoden haben um die Platzhalter mit ihrem Inhalt zu füllen. Also "fast" so wie mein erster Ansatz. Teilweise wird nach dem ersten Parsen des Templates dieses auch gecached. Erkenntniss die ich bis hierhin gewonnen habe ist, schluß endlich das Template "auch" PHP-Code beinhaltet. Nur nicht über include(), sondern vieleicht etwas eleganter, wobei über geschwindigkeiten da überhaupt nichts aussagen kann.
Das ist die Einleitung. Ich vermute mal, daß Du Dir Smarty angeguckt hast (Stichwort 'cache'). Denn...: genaugenommen sollte eine Template Engine so fix sein, daß man sich über das Thema "cache oder wie mache ich meinem langweiligen Script Beine?" keine Gedanken machen sollte.

Zitat:
@ meikel
ist das (für dich) der richtige Ansatz einer Template - Engine?
Ehrlich gesagt nicht. Eine Template Engine, die einen Cache für die eigene Arbeit generieren muß, weil sie sonst zu langsam ist, kannste ehrlich gesagt abhaken.

Noch mal:
guck Dir das Beispiel an:
http://test.php-help.info/template-2/

Das Beispiel nutzt die Extension php-templates:
http://test.php-help.info/php-template-3/

Beide Beispiele nutzen die selbe DB, basieren aber auf unterschiedlichen Template Engines.

Wenn Du die Laufzeiten vergleichst, wirst Du feststellen, daß die Template Extension noch mal 30-40% schneller ist als die eh schon recht fixe Template Klasse von R. Geschke ist.

Zitat:
Wenn ja habe ich deinen "schweren" Satz ja verstanden und ich könnte mich an solch einer kleinen Lösung probieren.
Lust hätte ich schon :P
Lust an Templates ist generell nicht falsch.

Beachte dabei folgendes:
Templates dienen der Trennung von Programm und Design.

Eine Template Engine, die im Template zusätzlich noch eine Makrosprache parst (wie zB. smarty) unterläuft genaugenommen das Konzept der "Trennung von Programm und Design" und schießt sich sozusagen "von hinten durch die Brust ins Auge".
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
MATCH .... AGAINST ... Problem Denise Datenbanken 4 21.03.2007 20:05
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Problem mit height Party-Pix HTML, Usability und Barrierefreiheit 3 29.03.2006 14:17
IFRAME Problem PHP Tipps 2006 13 28.02.2006 15:27
Template problem webmaster_andre HTML, Usability und Barrierefreiheit 4 25.02.2006 22:50
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] phpBB Template - Problem PHP-Fortgeschrittene 0 15.11.2005 21:02
Klassen und OOP Problem PHP-Fortgeschrittene 3 08.09.2005 10:37
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
[Erledigt] Problem mit User/Group: nobody(99)/99 Server, Hosting und Workstations 3 09.07.2005 15:31
Problem mit Datenausgabe im template .. PHP Tipps 2004-2 1 20.11.2004 21:28
Template Parser PHP-Fortgeschrittene 9 06.10.2004 23:04
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
vorteile trennung \programm und design\

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.