Thread HTML::Template - Instanz ohne Argumente (6 answers)
Opened by rosti at 2014-12-28 11:11

rosti
 2014-12-28 17:13
#178939 #178939
User since
2011-03-19
3472 Artikel
BenutzerIn
[Homepage]
user image
Naja, wenn es derzeit nicht anders möglich ist... es bringt ein paar Nachteile mit sich, u.a. erschwert es die Fehlersuche, wenn das Verhalten einer Instanz vom Aufruf einer Klassenmethode bestimmt wird (HTML::Template->config):

Bei einer Code-Wiedervorlage ist es nicht gleich zu sehen, wo die "Globals" gesetzt sind, es sei denn, das erfolgt unmittelbar vor dem Aufruf des Konstruktors in einer Zeile weiter oben oder eben gleich im Konstruktor, wenn schon mehrere Instanzen erstellt werden müssen. Letzteres bringt mich auf die Idee, eine "BasisConfig" als native Hash-Referenz an meinen Singleton (Request- und ResponseObject) zu binden und diesen Hash immer dann an Ort und Stelle zu ergänzen, wenn eine Instanz von HTML::Template erstellt wird; so kann das auch mal einer nachvollziehen, der später den Code betrachtet oder ändern muss. Unter Verzicht auf den Aufruf HTML::Template->config hat dann jede Instanz seine eigene Konfiguration.

Edit, das sieht dann so aus:
Code (perl): (dl )
1
2
3
4
5
6
sub body{
    my $self = shift;
    my $te = HTML::Template->new(%{$self->{TECFG}}, scalarref => \$self->{BODY});
    $te->param(%{$self->{STASH}});
    return $te->output;
}




Schöner wäre es freilich, wenn nur eine Instanz erstellt werden könnte und das Template als Dateiname oder String als Argument in die Render-Methode (param und output zusammengefasst) gegeben werden kann.
Last edited: 2014-12-28 17:21:33 +0100 (CET)

View full thread HTML::Template - Instanz ohne Argumente