Persistenter 'compile-identifier'. Anstatt jedem Funktionsaufruf die selbe '$compile_id' zu übergeben, kann eine individuelle '$compile_id' gesetzt werden. Das ist z. B. sinnvoll, um in Kombination mit einem 'prefilter' verschiedene Sprach-Versionen eines Template kompilieren.
Mit einer individuellen $compile_id können Sie das Problem beheben, dass Sie nicht das gleiche $compile_dir für unterschiedliche $template_dirs verwenden können. Wenn Sie eine eindeutige $compile_id für jedes $template_dir setzen, dann kann Smarty die kompilierten Templates anhand ihrer $compile_id auseinanderhalten.
Ein Beispiel ist die Lokalisierung (also die Übersetzung sprachabhängiger Teile) durch einen prefilter während der Kompilierung des Templates. Sie können dort die aktuelle Sprache als $compile_id verwenden und erhalten damit für jede Sprache einen eigenen Satz von Templates.
Ein anderes Beispiel ist die Verwendung des selben Compile-Verzeichnisses für verschiedene Domains / verschiedene Virtual Hosts.
Example 12.4. $compile_id in einer Virtual Host Umgebung
<?php $smarty->compile_id = $_SERVER['SERVER_NAME']; $smarty->compile_dir = '/path/to/shared_compile_dir'; ?>