In der PHP -Entwicklung ist die Template Engine ein wichtiges Instrument zur Trennung von Ansichten und Geschäftslogik, mit der der Code prägnanter und bequemer zu warten ist. Um die Ansicht effizient zu initialisieren, kann ein rationales Design einer Init -Funktion die Konfiguration und Verwendung der Template -Engine erheblich vereinfachen, Duplikatcode vermeiden und die allgemeine Entwicklungseffizienz verbessern.
In diesem Artikel wird ein Beispiel verwendet, um zu erklären, wie Init -Funktionen und Vorlagenmotoren (als Beispiel als Beispiel intelligent) zu einer effizienten Ansichtsinitialisierung kombiniert werden.
Bei der Verwendung der Vorlagenmotor müssen wir normalerweise eine Reihe von Initialisierungsvorgängen ausführen, z. B.:
Instanzielle Template -Engine -Objekte;
Vorlagen festlegen und Verzeichnisse kompilieren;
Konfigurieren von Cache- und Debug -Optionen;
Geben Sie globale Variablen oder Konfigurationsinformationen weiter.
Wenn diese Operationen in jeder Controller- oder Ansichtsverarbeitungsfunktion wiederholt werden, erscheint der Code überflüssig und schwer zu warten. Eine Init -Funktion kann diese gemeinsamen Initialisierungsarbeiten auf einheitliche Weise zusammenfassen. Rufen Sie in Zukunft einfach init () auf, um das konfigurierte Template -Engine -Objekt schnell zu erhalten.
<?php
require_once 'libs/Smarty.class.php';
function init() {
$smarty = new Smarty();
// Vorlageverzeichnis einstellen
$smarty->setTemplateDir('/var/www/gitbox.net/templates/');
// Legen Sie das Kompilierungsverzeichnis ein
$smarty->setCompileDir('/var/www/gitbox.net/templates_c/');
// Legen Sie das Cache -Verzeichnis ein
$smarty->setCacheDir('/var/www/gitbox.net/cache/');
// Festlegen des Konfigurationsverzeichnisses
$smarty->setConfigDir('/var/www/gitbox.net/configs/');
// Schalten Sie den Debug -Modus ein(Erhältlich in der Entwicklungsphase,Produktionsumgebung, die empfohlen wird, um zu schließen)
$smarty->debugging = true;
// Cache -Konfiguration
$smarty->caching = Smarty::CACHING_LIFETIME_CURRENT;
$smarty->cache_lifetime = 120;
// Globale Variablen zuweisen,Zum Beispiel Site -Name
$smarty->assign('site_name', 'GitBox Beispielstelle');
return $smarty;
}
// Beispiel Verwendung
$smarty = init();
// Templatvariablen zuweisen
$smarty->assign('page_title', 'Willkommen GitBox!');
$smarty->assign('content', 'Dies ist eine Verwendung init Beispielvorlage für die Funktionsinitialisierung。');
// Rendering -Vorlage
$smarty->display('index.tpl');
?>
Verzeichniskonfiguration : Beachten Sie, dass die Verzeichnisse der Vorlage, der Kompilierung und der Cache entsprechende Les- und Schreibberechtigungen haben müssen, andernfalls wird ein Fehler gemeldet.
Globale Variablen : Die in der Init -Funktion zugewiesenen Variablen (z. B. Site_NAME ) werden in allen Vorlagen wirksam und reduzieren doppelte Zuteilungen.
Skalierbarkeit : Sie können verschiedene Konfigurationen in der Init -Funktion gemäß verschiedenen Umgebungen (Entwicklung, Test, Produktion) laden.
Verbesserung der Effizienz : Sobald die Init -Funktion festgelegt ist, muss sich jeder Controller in Zukunft auf Geschäftsvariablen und das Rendern von Vorlagen konzentrieren und die doppelte Arbeit erheblich reduzieren.