Mailinglisten-Archive |
Ahoi, yet another template class im PHPLib CVS - http://phplib.netuse.de/cgi/cvsweb.cgi/php-lib/. Als ein Abfallprodukt eines größeren Projekts gibt es eine neue Template Klasse. IT[X] liegt zwischen den Till&Tobel Templates und FastTemplate/IsoTemplate (Näheres siehe PHPLib Liste). Der entscheidende Unterschied liegt darin, daß innerhalb eines Files mehrere Blöcke möglich sind. Daudesigner brauchen ein Template nicht mehr auf mehrere Files zu verteilen. +++ Features +++ IT: - Suchen&Ersetzen - Entfernung unbekannter Variablen - Blöcke in -einem- File - Verschachtelung von Blöcken möglich - Entfernung leerer Blöcke ITX: - Blöcke in externen Files +++ API +++ Die Block API nochmals einfacher als die der IsoTemplates (stable template.inc, Isotopp ist der Nick von Kristian). IT mit Blöcken: $tpl->setCurrentBlock( string blockname ) $tpl->setVariable( array ( string varname => mixed value ) ); $tpl->parseCurrentBlock(); ITX ist eine Ableitung von IT und bietet die Möglichkeit Blöcke aus externen Files einzubinden. Mit anderen Worten: ITX bietet praktisch den vollen Featureset von IsoTemplate. ITX mit externen Blöcken: $tpl->addBlockfile( string placeholder, string blockname, string filename); $tpl->setCurrentBlock( string blockname ) $tpl->setVariable( array ( string varname => mixed value ) ); $tpl->parseCurrentBlock(); +++ Status +++ Die API ist noch nicht isofiziert und entspricht nicht den PHPLib naming conventions. Ich habe leider derweil keine Zeit hier Anpassungen vorzunehmen, also entweder umbauen oder vorsichtig sein. Zur Stabilität kann ich noch nicht viel sagen, erste Tests verliefen gut. Etwas Doku ist im Source, ansonsten das PHPLib Listen Posting lesen und -dort- nachfragen. +++ Speed +++ Schnell, es ist kein relevanter Unterschied zu den IsoTemplates meßbar. Das wichtige an jeder Templateklasse ist die Verwendung von preg_replace(); dies gewinnt gegenüber strtr() und Schleife + str_replace() bei wenigen Ersetzungen (n<50) spürbar. preg_replace() wird auch in IT[X] benutzt. +++ Download +++ http://phplib.netuse.de/cgi/cvsweb.cgi/php-lib/php/ext/integratedtemplate.inc http://phplib.netuse.de/cgi/cvsweb.cgi/php-lib/php/ext/integratedtemplateextension.inc Viel Spaß! Ulf -- Ulf Wendel NetUSE AG, Siemenswall, 24107 Kiel, Germany Fon: +49 431 386435 00 -- Fax: +49 431 386435 99
php::bar PHP Wiki - Listenarchive