Manual
2. Klasa PHPTAL
Jest to główna klasa biblioteki, którą musisz użyć.
Najbardziej typowe jej użycie :
<?php // dolaczenie biblioteki require_once 'PHPTAL.php'; // utworzenie obiektu PHPTAL z nazwa szablonu $tpl = new PHPTAL('mytemplate.html'); // ustawienie kilku zmiennych $tpl->title = 'my title'; $tpl->values = array(1,2,3,4); $tpl->user = new User('Joe'); // uruchomienie szablonu i wyswietlenie wyniku w 'bezpieczny' sposob try { echo $tpl->execute(); } catch (Exception $e){ echo "Exception thrown while processing template\n"; echo $e; } ?>
Możesz także wybrać szablon źródłowy po utworzeniu obiektu i ustawieniu zmiennych.
<?php ... $tpl = new PHPTAL(); // it is a matter of taste but you can use the set() method instead of // setting context using PHPTAL::__set() like above $tpl->set('title', 'my title'); $tpl->set('values', array(1,2,3,4)); $tpl->set('user', new User('Joe')); $tpl->setTemplate('mytemplate.html'); ... ?>
Możesz także zadecydować, czy użyć łańcucha znaków jako źródla szablonu zamiast istniejącego pliku z szablonem :
<?php $src = <<<EOS <html> <head> <title tal:content="title">my title</title> </head> <body> <h1 tal:content="title">my title</h1> </body> </html> EOS; require_once 'PHPTAL.php'; $tpl = new PHPTAL(); $tpl->setSource($src); $tpl->title = 'this is my title'; try { echo $tpl->execute(); } catch (Exception $e){ echo $e; } ?>
W powyższym przykładzie ze względu na fakt, iż PHPTAL wymaga identyfikatora źródła szablonu (zazwyczaj bezwględna ścieżka pliku szablonu) obliczy sumę kontrolną md5 parametru $src jako unikatowy indeytfikator. Możesz wymusić nadanie własnego idenfikatoru korzystając z drugiego parametru metody setSource() :
<?php $src = <<<EOS <html> <head> <title tal:content="title">my title</title> </head> <body> <h1 tal:content="title">my title</h1> </body> </html> EOS; require_once 'PHPTAL.php'; $tpl = new PHPTAL(); // because the source is contained in this file and won't be modified unless // this file is modified, it is 'faster' to specify __FILE__ as the unique // source identifier, thus no md5 of $src will be done on each call. $tpl->setSource($src, __FILE__); $tpl->title = 'this is my title'; try { echo $tpl->execute(); } catch (Exception $e){ echo $e; } ?>