Hallo zusammen,
inspiriert von folgendem Thread http://www.php-resource.de/forum/sho...threadid=48488 möchte ich in meine Template-Klasse nun auch eine Caching-Funktion einbauen. Das Template unterstützt einfach Variablen und Blöcke (auch verschachtelt).
Die Variablen sind in $this->vars und werden beim cachen mit
erstetzt. Zuvor prüfe ich mit array_key_exists ob die gesuchte Variable vorhanden ist. Wenn nicht, wird der Platzhalter einfach gelöscht.
Das klappt soweit - nun zu den Blöcken. Ein Block hat bei mir folgende Datenquelle in $this->blocks[NAME_DES_BLOCKS]:
Den Block ersetze ich durch [PHP]<?php foreach($data as $line) ... ?>/PHP]
und jage die Vorlage für den Block durch die Funktion, die die Variablen ersetzt. Jetzt findet die Funktion array_key_exists im obigen Array natürlich nicht den Schlüssel 'wert'. Dadurch werden im Block dann auch keine Variablen ersetzt.
Außerdem müsste ich die Variable ja auch in der foreach-Schleife bei jedem Durchlauf auf Existenz prüfen für den Fall, dass in einem Satz mal ein Schlüssel fehlt - sonst kommt es bekanntlich zu unschönen Fehlermeldungen ... Und genau da brauche ich mal einen Tipp.
Wir würdet ihr die Ersetzung von Variablen in Blöcken vornehmen und wir würdet ihr prüfen ob die Variable in der Datenquelle vorhanden ist und bei Fehlen reagieren.
So, ich hoffe das war nicht zu weit ausgeholt und einigermaßen verständlich ... jetzt schon einmal Danke an alle Helfer!
inspiriert von folgendem Thread http://www.php-resource.de/forum/sho...threadid=48488 möchte ich in meine Template-Klasse nun auch eine Caching-Funktion einbauen. Das Template unterstützt einfach Variablen und Blöcke (auch verschachtelt).
Die Variablen sind in $this->vars und werden beim cachen mit
PHP-Code:
<?php echo $this->vars[NAME_AUS_PREG_MATCH]; ?>
Das klappt soweit - nun zu den Blöcken. Ein Block hat bei mir folgende Datenquelle in $this->blocks[NAME_DES_BLOCKS]:
PHP-Code:
Array
(
[0] => Array
(
[wert] => abc
)
[1] => Array
(
[wert] => def
)
[2] => Array
(
[wert] => xyz
)
)
und jage die Vorlage für den Block durch die Funktion, die die Variablen ersetzt. Jetzt findet die Funktion array_key_exists im obigen Array natürlich nicht den Schlüssel 'wert'. Dadurch werden im Block dann auch keine Variablen ersetzt.
Außerdem müsste ich die Variable ja auch in der foreach-Schleife bei jedem Durchlauf auf Existenz prüfen für den Fall, dass in einem Satz mal ein Schlüssel fehlt - sonst kommt es bekanntlich zu unschönen Fehlermeldungen ... Und genau da brauche ich mal einen Tipp.
Wir würdet ihr die Ersetzung von Variablen in Blöcken vornehmen und wir würdet ihr prüfen ob die Variable in der Datenquelle vorhanden ist und bei Fehlen reagieren.
So, ich hoffe das war nicht zu weit ausgeholt und einigermaßen verständlich ... jetzt schon einmal Danke an alle Helfer!
Kommentar