Mailinglisten-Archive |
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