Tutorial Amazon Web Services mit PHP – IV – Smarty

Nachdem wir uns im letzten Teil des Tutorials mit dem Funktionscaching beschäftigt haben, besitzen wir nun alle notwendigen Werkzeuge, um Daten aus den Amazon Web Services abzuholen. Was jetzt eigentlich nur noch fehlt, ist die Darstellung der Daten auf einer HTML-Seite im eigenen Design. Wir könnten jetzt natürlich eine schöne HTML-Seite entwickeln und die Daten mit einem echo einfach ausgeben, aber in der Regel ist dies kontraproduktiv! Wenn man vernünftig mit PHP arbeiten will, trennt man stets den Programmcode vom Design, benutzt also Templates.

Auch hier braucht das Rad nicht neu erfunden zu werden, wir benutzen einfach Smarty. Bei Smarty handelt es sich um eine Klasse, die PHP zu Templates verhilft. Entsprechend haben wir nun zwei Dateien, die wir bearbeiten müssen: eine PHP-Datei, die den Programmcode enthält, und eine Template-Datei, die das Design erhält. Sehr einfach ausgedrückt läuft das Ganze so: Im Template setzt man Platzhalter in der Art von „Content hierhin“ und in PHP sagt man, wie diese Platzhalter gefüllt werden sollen.

Gehen wir im weiteren davon aus, dass wir drei Platzhalter haben: einen Buchtitel, eine Beschreibung des Buches und einen URL-Link zur Bestellung des Buches bei Amazon. Entsprechend muss Smarty in PHP geladen werden, und die Platzhalter mit Inhalten gefüllt werden:

1
2
3
4
5
6
require( 'Smarty.class.php' );
$smarty = new Smarty();
$smarty->assign( 'book_title', 'Dies ist der Buchtitel' );
$smarty->assign( 'book_description', 'Dies ist die Beschreibung des Buchs' );
$smarty->assign( 'book_order_link', 'http://www.amazon.de' );
$smarty->display( 'template.tpl' );

Wie man sieht, ist Smarty recht intuitiv. Zuerst laden wir die Klasse, erstellen eine Instanz und weisen mit assign die Platzhalter zu. Mit display geben wir letztendlich das Template aus. Aber wie sieht das Template aus? Ganz einfach:

1
2
3
4
5
<div id="book">
<h2>{$book_title}</h2>
<p>{$book_description}</p>
Buch bestellen.
</div>

Wie man sieht, werden alle Smarty-Tags mit Mengenklammern versehen {}, so auch die Platzhalter. Dass $ kennzeichnet wie in PHP eine Variable. In unserem Beispiel würde demnach aus dem {$book_title} ein „Dies ist der Buchtitel“ werden.

Templates sind in PHP gar nicht so schwer wie man denkt, und man sollte sie eigentlich immer verwenden. Das erspart einem übrigens auch einiges an Haare-Raufen, wenn man seinen Mitarbeitern nicht vermittelt bekommt, PHP-Code nicht zu ändern.

Nachdem wir nun alle notwendigen Werkzeuge zusammenhaben, werden wir im nächsten Teil all diese Techniken zusammen führen, und ein „Real-World-Beispiel“ erstellen, in dem wir über die AWS die Daten eines beliebigen Buches abrufen und darstellen. Welches Buch es sein soll, entscheiden wir über eine ISBN-Nummer in der URL.

Ähnliche Beiträge

Testdaten generieren mit Faker Unit-Tests sind ja eine feine Sache aber meistens mangelt es Ihnen in PHP an einer entscheidenden Grundlage: Testdaten. Wer kennt das nicht? Man baut ...
PHP beschleunigen mit phpFastCache Je höher die Besucher-Zahlen einer Seite werden, desto mehr Probleme fängt man sich ein. In der Regel kommt man heutzutage auf die Idee, langsamen Web...
Die Wunderwelt von PHP und cURL PHP kann eine Menge, und eine Menge sogar doppelt bis dreifach. Das öffnen entfernter Dateien kann mittels "normalem" Dateihandling auch über die soge...
Chart-Libraries für PHP Eine interessante Ansammlung von Chart-Libraries kann man derzeit bei code-diesel bestaunen. Ich finde diese Liste insofern interessant, als das das S...

2 Antworten auf „Tutorial Amazon Web Services mit PHP – IV – Smarty“

  1. @Adrian

    Mit dem Smarty->assign übergibst du Smarty eine Variable. Wenn du eine einfache Zuweisung machst, gilt die nur innerhalb von PHP, aber steht in Smarty nicht mehr zur Verfügung.

  2. Wirklich ein schönes Tutorial. Ich habe da eine Frage zum Nutzen von Smarty, der sich mir nicht erschließt. Man könnte doch anstatt:

    $smarty->assign( ‚book_title‘, ‚Dies ist der Buchtitel‘ );
    $book_title = „Dies ist der Buchtitel“;

    Das sieht mir auf den ersten Blick kompakter aus und hat denselben nutzen. Oder kann Smarty mehr?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.