2.3. Erweiterte Konfiguration
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.
Beispiel 2-10. Editieren von /php/includes/guestbook/setup.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.mydomain.com/smarty/guestbook/templates/';
$this->compile_dir = '/web/www.mydomain.com/smarty/guestbook/templates_c/';
$this->config_dir = '/web/www.mydomain.com/smarty/guestbook/configs/';
$this->cache_dir = '/web/www.mydomain.com/smarty/guestbook/cache/';
$this->caching = true;
$this->assign('app_name','Guest Book');
}
} | Technische Bemerkung |
|---|
| | 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:
Beispiel 2-11. Editieren von /web/www.mydomain.com/docs/guestbook/index.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.
|