Nachdem ich mir XAMPP unter Windows bereits installiert hatte, sollte auch noch die Smarty Template Engine dazukommen. So geht’s:
Apache stoppen, Smarty hier downloaden, die Datei entzippen und den Ordner in "smarty" umbenennen.
Diesen Ordner am besten in das Verzeichnis verschieben, in dem auch XAMPP installiert ist; bei mir liegt dieser Ordner z.B. unter D:programmierung und ich gebe diese Pfade im folgenden auch immer als Beispiel an. Liegt euer Server woanders, müssen die Pfade entsprechend angepasst werden.
Die in D:programmierungxamppapachebin liegende php.ini öffnen und nach include_path für Windows suchen, dort folgende Zeile einfügen:
include_path = ".;D:programmierungsmartylibs"
Folgende Ordner neu anlegen:
– smarty im Root-Verzeichnis (bei mir also: D:programmierungxampphtdocs)
– templates und configs in diesem smarty-Verzeichnis (D:programmierungxampphtdocssmarty)
– templates_c und cache im ausserhalb von xampp liegenden smarty-Verzeichnis (D:programmierungsmarty)
Eine index.php im Verzeichnis D:programmierungxampphtdocssmarty mit folgendem Inhalt erzeugen, dabei die Pfadangaben entsprechend anpassen:
<?php
// load Smarty library
require("D:/programmierung/smarty/libs/Smarty.class.php");
$smarty = new Smarty;
$smarty->template_dir = "D:/programmierung/xampp/htdocs/smarty/templates/";
$smarty->config_dir = "D:/programmierung/xampp/htdocs/smarty/configs/";
$smarty->cache_dir = "D:/programmierung/smarty/cache/";
$smarty->compile_dir = "D:/programmierung/smarty/templates_c/";
$smarty->assign("name","Babe");
$smarty->assign("meldung","es klappt!");
$smarty->display("index.tpl");
?>
Jetzt noch die erwähnte "index.tpl" erzeugen, die ins Verzeichnis D:programmierungxampphtdocssmartytemplates gehört:
<html>
<body>
Hallo {$name}, {$meldung}
</body>
</html>
Zum Schluss den Server wieder starten und die Datei "index.php" unter http://localhost/smarty/ aufrufen. Erscheint dort die Meldung Hallo Babe, es klappt!, dann hat die Installation von Smarty wohl hingehaun. ![]()
Nachtrag:
Sollte doch eine Fehlermeldung beim Aufruf der "index.php" erscheinen, dann stimmt etwas mit dem Pfad nicht.
Eine ganz andere mysteriöse Fehlermeldung ist mir bei der Installation von Smarty auf meinem Rechner untergekommen. Nachdem es auf dem Laptop mit dem exakt gleichen System problemlos geklappt hat, erschien dort plötzlich ein Parse Error. Nach langem Draufstarren, manchmal übersieht man ja einen kleinen Fliegendreck mit grosser Wirkung, bin ich letztendlich dahintergekommen, wo der Fehler lag. Und als ich statt der Hochkommas überall Anführungszeichen vergeben hatte, funktionierte es.
Normal sollten aber beide Alternativen verwendet werden können, warum es bei mir an dieser Stelle hakte, verstehe ich immer noch nicht. Tücken des Systems oder so.
Nachtrag 2:
So, nun sind alle Hochkommas gegen Anführungszeichen ersetzt; d.h. jetzt sollte der Code auch funktionieren, wenn er per Copy ‘n Paste eingefügt wird.

16. Januar 2009 um 20:15 Uhr
Klappt einwandfrei!
Danke.
14. Januar 2009 um 22:14 Uhr
Hi, danke für die super Anleitung! Hat alles einwandfrei geklappt.
13. November 2008 um 18:09 Uhr
Vielen Dank, hat bei mir problemlos geklappt!!
2. Oktober 2008 um 12:52 Uhr
Hi,
danke für die detallierte Anleitung…..Hat alles einwandfrei geklappt
Meine Angaben sind ohne Müll wirklich wahr
=)
Ich habe bei der richtigen Anleitung nur den ersten Teil mit include nicht verstanden, weil das so doof da stand xDDD
Auf jeden Fall hats ja jetzt geklappt und alle sind Glücklich und ich freue mir gerade nen keks
MFG Dominik Schmauder
4. September 2007 um 10:20 Uhr
jooo das englische original ist ja voller fehler in den pfadangaben
danke
8. Juli 2007 um 19:50 Uhr
Hallo,
Danke, das war die beste Installations-Beschreibung von Smarty, die im Netz gefunden habe.
Gruß Jörg
1. Juli 2007 um 13:21 Uhr
Habe folgenden Fehler:
Fatal error: Call to a member function display() on a non-object in C:Programmexampphtdocssmartyindex.php on line 11
22. Juni 2007 um 12:23 Uhr
Gerade herausgefunden, wo der Fehler steckte:
Und zwar wird in der Datei “Smarty.class.php” die Konstante “SMARTY_CORE_DIR” wie folgt definiert:
define(‘SMARTY_CORE_DIR’, SMARTY_DIR . ‘internals’ . DIRECTORY_SEPARATOR);
Da es in meiner Smarty-Distribution den Ordner “internals” allerdings nicht gibt, muss diese Zeile in folgende umgeändert werden:
define(‘SMARTY_CORE_DIR’, SMARTY_DIR . DIRECTORY_SEPARATOR);
Allerdings ist die Tatsache, dass dieses Unterverzeichnis im “libs” Ordner nicht existierte auf einen Fehler bei Entpacken der Smarty-Zip-Datei zurückzuführen.
Grüße,
Simone
22. Juni 2007 um 11:42 Uhr
Hi, ich habe alles der Anleitung nachgebastelt und habe jetzt folgendes Problem – Es erscheint die Fehlermeldung:
“Smarty::require_once(D:Programmesmartylibsinternalscore.write_compiled_resource.php) [function.Smarty-require-once]: failed to open stream: No such file or directory in D:ProgrammesmartylibsSmarty.class.php on line 1432″
Die Datei core.write_compiled_resource.php scheint an der Stelle also nicht gefunden zu werden, allerdings ist diese jedoch vorhanden und auch am richtigen Platz.
Hat jemand ne Ahnung, woran das liegen könnte??
Danke und Grüße,
Simone
8. Mai 2007 um 17:16 Uhr
Tolle Anleitung, danke
Es ist ebenfalls möglich, kanonische Pfade ohne Laufwerksbuchstaben anzugeben. Das bietet sich an, wenn man den xampp als portable Lösung von einem USB-Stick laufen lassen möchte. In meinem Fall liegt xampp dabei im Root des Sticks, smarty ist ein Unterverzeichnis von /xampp.
/xampp/apache/bin/php.ini:
include_path = “.;xamppsmartylibs”
/xampp/smarty/libs/smarty.class.php:
var $compile_dir = ‘/xampp/smarty/templates_c’;
var $cache_dir = ‘/xampp/smarty/cache’;
/xampp/htdocs/smarty/index.php:
$smarty->template_dir = “/xampp/htdocs/frameworks/smarty/templates/”;
$smarty->config_dir = “/xampp/htdocs/frameworks/smarty/configs/”;
Grüße, Kay
21. Januar 2007 um 21:58 Uhr
So die Anleitung stimmt!
Jedoch kann man sich die neue Zeile
include_path = “.;D:programmierungsmartylibs”
sich sparen, bei der xampp installation wird schon ein include_path gesetzt,
die nun saubere art ein weiteren include_path hinzuzufügen,
wäre demnach das Simikolon und der weitere include_path
beispiel:
; Windows: “path1;path2″
include_path = “.;C:Programmexamppphppear;C:Programmexamppsmartylibs”
desweiteren kann man sich die angabe von
$smarty->cache_dir = “D:/programmierung/smarty/cache/”;
$smarty->compile_dir = “D:/programmierung/smarty/templates_c/”;
mit einer einfachen änderung in der smarty.class.php
Von:
var $compile_dir = ‘templates_c’;
var $cache_dir = ‘cache’;
In:
var $compile_dir = ‘../smarty/templates_c’;
var $cache_dir = ‘../smarty/cache’;
Kann man die Standart Suchverzeichnisse außerhalb des htdocs Verzeichnisses in das Verzeichniss “smarty” legen.
Somit müssen in php code diese Verzeichnisse nicht mehr definiert werden.
Desweiteren kann man in der smarty.class.php auch die Standart Suchverzeichnisse der anderen beiden Ordner an seine Wünsche anpassen.
mfg Rick
17. Oktober 2006 um 14:50 Uhr
Genial! Nach so einer Anleitung hab ich gesucht und es klappt auf Anhieb! Hut ab!
18. August 2006 um 15:57 Uhr
Super, bin genau so vorgegangen, und alles läuft wie geschmiert. Grossen Dank
6. Juli 2006 um 18:43 Uhr
Hallo HiLa,
sorry, war in Urlaub und komme erst jetzt zum antworten.
Nach der Fehlermeldung scheint die Datei "Smarty.class.php" in dem angegebenen Ordner nicht vorhanden zu sein, kann das sein?
Grüsse, Martina
27. Juni 2006 um 01:57 Uhr
Hallo Ihr, habe alles wie so gemacht- bekomme aber immer diesen Fehler und weiss keinen Rat mehr- könnte mir einer von Euch helfen?
Fehler
Warning: require(D:/Programmierung/smarty/libs/Smarty.class.php) [function.require]: failed to open stream: No such file or directory in D:Programmierungxampphtdocssmartyindex.php on line 3
Fatal error: require() [function.require]: Failed opening required ‘D:/Programmierung/smarty/libs/Smarty.class.php’ (include_path=’.;D:Programmierungsmartylibs’) in D:Programmierungxampphtdocssmartyindex.php on line 3
Vielen Dank
21. April 2006 um 22:44 Uhr
Spitze! Hat mir sehr weitergeholfen; hab es unter Linux installiert, wenn ich auch lange nach dem Pfad für die php.ini gesucht habe.
7. April 2006 um 20:40 Uhr
Hallo Danke für die Anleitung finde ich super das es so etwas hier gibt DANKE!
und noch eine Sache hab genau die Gleiche Fehlermeldung wie Anonymous hab alles in (“) gesetzt und sehe da es geht
6. März 2006 um 17:36 Uhr
Nein, daran kann es – zumindest bei meiner Smarty-Installation nicht gelegen haben.
Dieser Blog-Eintrag entstand ja erst später, ich hatte für mein Smarty o.g. Code in einem stinknormalen PHP-Editor eingegeben, der ein “anständiges” Hochkomma setzt.
Aber ich werde hier noch einmal überarbeiten und Anführungszeichen setzen, das ist auf jeden Fall sicherer, falls jemand den Code hier rauskopiert, da hast du wohl recht.
6. März 2006 um 16:59 Uhr
Obwohl ich weder ‘Experte’ noch ‘-in’ bin weiss ich worans liegt:
Das Blog-Script (höchstwahrscheinlichz ist dies der Schuldige) macht aus einem einfachen Hochkomma ein orthographisches Hochkomma. Dies kann php nicht interpretieren.
Gruß
FK
26. Februar 2006 um 20:32 Uhr
Vielen Dank. Hat geklappt.