phpbar.de logo

Mailinglisten-Archive

[php] Bedeutung von Template-Klassen/Engines in der PHP-Programmierung

[php] Bedeutung von Template-Klassen/Engines in der PHP-Programmierung

Peter Bieling network at media-palette.de
Mon Mai 31 14:39:59 CEST 2004


Redaktion ''Der CMS-Report'' wrote:

>>Schneller wird's wohl kaum gehen.
> 
> Da kann ich nicht widersprechen. Und packst Du dann wenigstens die
> elementare String-Verarbeitung in eine Klasse?

nein, bisher nicht. Ich mache mir die Sache aber durch einen Trick etwas 
�bersichtlicher.

Hier etwas Beispielcode aus einem aktuellen Mailer-Skript:
(Die Variablen $missing und $confirmation bezeichnen Bl�cke f�r 
Fehlermeldung bzw. ein Best�tigungsformular. Eine Variable enth�lt also 
einen Leerstring.)
======================
...
//Platzhalter => Ersetzungsstrings zuordnen
$sere['{MISSING}'] = $missing;
$sere['{ACTION}'] = $_SERVER['PHP_SELF'];
$sere['{CONFIRMATION}'] = $confirmation;

//Template einlesen
$form_template= file_get_contents("templates/form.tpl");

//Template f�llen und ausgeben
echo str_replace(array_keys($sere), array_values($sere), $form_template);
...
=========================
Ich arbeite in diesem Beispiel erst mit einem gemeinsamen Array, damit 
man die �bersicht nicht verliert, danach splitte ich es in zwei Arrays 
auf. Bei drei Werten ist das nicht unbedingt n�tig, aber bei 20 freut 
man sich.

Wenn man die Variablen schon in einem Hash bekommt, kann man die 
Ersetzungsmuster auch generieren.

foreach ($fields as $k => $v) {
     $search[]='{'. strtoupper($k) . '}';
     $replace[] = $v;
}

F�r $fields['name'] wird dann ein {NAME} als Platzhalter erwartet.

Ich glaube nicht, dass sich bei diesem Verfahren noch viel in eine 
Klasse auslagern lie�e. Bei der Verwendung einer Klasse bekomme ich eher 
mehr statt weniger Code.
Was eine Klasse halt bieten kann, ist die Pr�fung des Templates auf 
fehlende Werte oder die Entfernung nicht ben�tigter Bl�cke usw. H�ufig 
braucht man so etwas aber gar nicht, und dann frage ich mich, warum man 
nicht direkt mit PHP-Funktionen arbeitet.

Viele Gr��e

Peter




php::bar PHP Wiki   -   Listenarchive