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-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'); }
} ?>
|
|
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-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.