Einzelnen Beitrag anzeigen
  #9 (permalink)  
Alt 29.08.2013, 14:25
Benutzerbild von lottikarotti
lottikarotti lottikarotti ist offline
Ein ♥ für's Web
XHTMLforum-Mitglied
 
Registriert seit: 18.04.2012
Ort: Karlsruhe
Beiträge: 396
lottikarotti wird schon bald berühmt werden
Standard

Hallöchen,

Zitat:
Zitat von mymaksimus Beitrag anzeigen
Aber lottikarotti, jetzt bin ich etwas verwirrt - wie schaffst du es php code zwischen #...# auszuführen?? Oder übersehe ich da etwas?
Stell dir vor du hast eine Datei "index.html" welche eine x-beliebige Syntax für Platzhalter verwendet. Bein "rendern" wird nun die gesamte Datei "index.html" eingelesen, alle sich darin befindlichen Platzhalter werden durch die tatsächlichen Werte ersetzt und anschließend wird das Ergebnis ausgegeben. Du machst quasi aus der Zeichenkette:

HTML-Code:
<h1>#welcome#</h1>
die folgende:

HTML-Code:
<h1>Herzlich willkommen!</h1>
---

Um das nun etwas flexibler und performanter zu gestalten, gehe ich den Weg, dass ich die "rohe Fassung" der Templates selbst übersetze - und zwar in lauffähigen PHP-Code. So wird aus

HTML-Code:
<h1>#welcome#</h1>
zunächst ein PHP-Script mit dem Inhalt:

PHP-Code:
<h1><?php echo $data['welcome']; ?></h1>
Anschließend kann ich diese übersetzte Fassung mittels include "rendern":

PHP-Code:
ob_start();
$data['welcome'] = 'Herzlich willkommen';
include(
'template.php');
$html ob_get_clean(); 
In der Praxis sieht das bei mir natürlich nicht ganz so aus. Für den praktischen Einsatz nutze ich spezielle Klassen, welche mir die ganze Arbeit abnehmen und die Templates bei Bedarf automatisch übersetzen, Parameter weiterreichen usw. Das kann dann so aussehen:
PHP-Code:
<?php
    
echo Template::render'index', [ 'welcome' => 'Herzlich willkommen' ] );
?>
Auch habe ich meiner Template-Engine die Syntax #dict.VAR# beigebracht, damit ich Zeichenketten wie 'Herzlich willkommen' nicht extra an das Template übergeben muss, da diese sich ohnehin nicht ändern.

Derartige Techniken sind eigt. üblich im PHP-Umfeld und du wirst zu dem Thema viele weitere Informationen im Netz finden.

Viele Grüße,
lotti
__________________
Empfehlenswerte Links:
jsFiddle | JavaScript Patterns | RedBeanPHP | Mozilla Developer Network -/- W3C Validator | JSLint

Geändert von lottikarotti (29.08.2013 um 14:28 Uhr)
Mit Zitat antworten
Sponsored Links