Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
ja aber warum sollte man sich dann keine eigene kleine Klasse schreiben die alles beinhaltet was man braucht (meist sogar weniger als 6 funktionen)?
Wozu in eine Fremdeklasse einarbeiten?
Wie einer meiner Vorredner schon gesagt hat: ja. Dadurch, das Smarty in PHP 4 geschrieben ist (es ist doch noch immer PHP 4, oder ?) läuft es praktisch (99,9 %) überall.Kann man denn auf jeden Server Smarty installieren?
Templates sind auch in allen modernen und portablen Webapplikationen Pflicht. Ich halte Smarty aber nur bedingt als Templatesystem geignet, weil es einfach überflüssig ist. Ich kann meine Variable durch {$foobar} ausgeben und durch <?php echo $foobar ?>. Ich kann auch meine If-Abfragen in Smartys Sprache schreiben oder in PHP. Nur muss ich für Smartys Sprache mich wieder durch endlos lange Anleitungen und Dokumentationen quälen. Da ist es mir lieber, wenn ich auf Smarty verzichte und es in PHP schreibe. Das tolle ist nämlich: Ich verwende Zend_View (ich bin etwas vom Zend Framework beindruckt ^^), ich schreibe meine Templates in PHP (und HTML natürlich) und kann sie dann genau wie bei Smarty parsen lassen, nur alles viel schneller als bei Smarty (siehe weiter unten).So habe ich auch gedacht, allerdings sind Templates durchaus nicht unpraktisch. Ich bin mir nicht sicher, da ich noch nicht viel damit gemacht habe, aber es scheint mir durchaus als eine Erleichterung und Vereinfacherung beim Programmieren.
Um die Seite zu erzeugen und die Variablen durch "richtige" PHP Variablen zu ersetzen, verwendet Smarty Reguläre Ausdrücke. Das ist natürlich langsamer als wenn alles schon in PHP dasteht, und nicht erst durch Smarty "geparst" werden muss. Vorallem bei vielen Variablen, und ein paar anderen Features von Smarty wirds wirklich lahm (Das gilt freilich nur bei einer gut besuchten Webseite. Bei 50 - 100 Besuchern am Tag wirds niemanden stören).Langsamer? Wie meinst du das? Es dauert länger, bis die Seite aufbaut oder wie?
<?php
class Template
{
var $source;
var $file;
var $vars;
var $result;
var $dir = 'templates/';
function Template($filename)
{
if (is_dir($dir))
{
$file = $this->tpldir.$filename;
if(!is_file($file) || !is_readable($file))
{
die('Datei nicht vorhanden/lesbar.');
}
$this->source = implode(file($file));
}
else die('Kein Ordner.');
}
function assign($var, $value)
{
$this->vars[$var] = $value;
}
function parse()
{
foreach ($this->vars as $search => $replace)
{
$this->result = str_replace('{'.$search.'}', $replace, $this->source);
}
$this->vars = null;
}
function show()
{
echo $this->result;
}
}
?>
$dir = './';
$dir = '';
$dir = './templates/';
$dir = 'templates/';
$dir = './templates';
$dir = 'templates';