Durch das Vorkompilieren werden alle Daten die nicht benötigt werden entfernt und die Daten werden so arrangiert das sie schneller einlesbar sind.
Das hat zur folge das die Geschwindigkeit der abarbeitung stark erhöht wird.
Vorkompilieren ist immer dann sinnvoll, wenn geschwindigkeit gefragt ist.
Grundsätzlich ist das Voprkompilieren aber erst dann wirklich notwendig wenn die Sprachdateien
sehr umfangreich sind, ab ca. 200-300 einträgen. Davor ist normalerweise kein geschwindikeitsunterschied
bemerkbar (aber messbar!).
Um eine Sprachdatei vorzukopmpilieren wird von der LanguageSys Klasse eine funktion bereitgestellt, die sich passend
LanguageSys::compile() nennt. Diese funktion erwartet eine Quelldatei und eine Zieldatei als angaben.
Die Quelldatei ist die Originaldatei, zum Beispiel de_DE.ini und die Zieldatei die, in die alles ausgegeben werden soll, zum Beispiel de_DE.lng.
Ein Script zum einfachen Vorkompilieren ist im Download der Klasse enthalten sowei am ende dieser Seite aufgeführt.
Bei diesem Script solltet ihr darauf achten das genügend rechte zum Lesen/Schreiben der Dateien existieren.
Nach dem Vorkompilieren der Datei kann diese einfach mit in das Verzeichniss der anderen Sprachdateien getan werden,
Die LanguageSys klasse zieht dateien mit der endung *.lng automatisch den dateien mit der endung *.ini vor, die
Originaldatei muss also nicht gelöscht werden - kann aber gelöscht werden.
Achtung! In einer Vorkompilierten datei sollte nichtsmehr von hand verändert werden! Fehler darin können zu unerwarteten
folgen führen, das bedeutet dass eine Verschiebung der Sprachelemente die folge sein könnte und somit nicht das gewünscht ergbnis erzielt würde.
Lieber zweimal kompilieren ;-)
<?php
include('LanguageSys.class.php');
$srcfile = './de_DE.ini'; //Quelldatei
$destfile = './de_DE.lng'; //Zieldatei
$compiler = new LanguageSys();
if( !$compiler->compile($srcfile, $destfile) )
{
die($compiler->last_error());
}
print "File compiled successfully.\n";
?>