What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Dies ist eine Weiterführung der Basis Installation, bitte lesen Sie diese zuerst!
Ein flexiblerer Weg um Smarty aufzusetzen ist, die Klasse zu erweitern und eine eigene Smarty-Umgebung zu initialisieren. Anstatt immer wieder die Verzeichnisse zu definieren, kann diese Aufgabe auch in einer einzigen Datei erledigt werden. Beginnen wir, indem wir ein neues Verzeichnis namens '/php/includes/guestbook/' erstellen und eine Datei namens 'setup.php' darin anlegen.
Example 2.12. Editieren von /php/includes/guestbook/setup.php
<?php // Smarty Library Dateien laden define('SMARTY_DIR','/usr/local/lib/php/Smarty/'); require(SMARTY_DIR.'Smarty.class.php'); // ein guter Platz um Applikations spezifische Libraries zu laden // require('guestbook/guestbook.lib.php'); class Smarty_GuestBook extends Smarty { function Smarty_GuestBook() { // Konstruktor. Diese Werte werden für jede Instanz automatisch gesetzt $this->Smarty(); $this->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; $this->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; $this->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; $this->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; $this->caching = true; $this->assign('app_name','Guest Book'); } } ?>
In unserem Beispiel werden die Library Dateien ausserhalb der DocumentRoot abgelegt. Diese Dateien könnten sensitive Informationen enthalten, die wir nicht zugänglich machen möchten. Deshalb legen wir alle Library Dateien in '/php/includes/guestbook/' ab und laden sie in unserem 'setup.php' Skript, wie Sie im oben gezeigten Beispiel sehen können.
Nun passen wir index.php
an, um 'setup.php'
zu verwenden:
Example 2.13. Editieren von /web/www.example.com/docs/guestbook/index.php
<?php require('guestbook/setup.php'); $smarty = new Smarty_GuestBook; $smarty->assign('name','Ned'); $smarty->display('index.tpl'); ?>
Wie Sie sehen können, ist es sehr einfach eine Instanz von Smarty zu erstellen. Mit Hilfe von Smarty_GuestBook werden alle Variablen automatisch initialisiert.