TinyButStrong

TinyButStrong
Tip de Procesor de șabloane
Scris in PHP
Sistem de operare Software multiplatformă
ultima versiune 3.9 (26 ianuarie 2014)
Licență GNU LGPL
Site-ul web tinybutstrong.com

TinyButStrong (abreviar TBS) este un motor de șablon web interpretativ relativ ușor pentru PHP [ 1] . Listat într-o serie de recenzii de pe internet drept cei mai buni manipulatori de șabloane PHP [2] [3] [4] .

Caracteristici

Instrumentul TinyButStrong a fost conceput pentru a putea proiecta șabloane cu ajutorul simplă a editorilor vizuali (cum ar fi Dreamweaver sau FrontPage ) și, de asemenea, vă permite să creați scripturi JavaScript în mod dinamic. Acest instrument conține doar 8 funcții, oferind în același timp performanțe ridicate. Acest lucru permite combinarea șabloanelor cu variabile PHP sau sisteme de gestionare a bazelor de date MySQL , PostgreSQL sau SQLite .

Spre deosebire de, de exemplu, Smarty nu este o variație a temei unui limbaj de programare procedural, ci folosește mecanisme pentru a lega etichetele șablon la structură și etichetele HTML . Acest lucru îl face ușor de utilizat cu editorii HTML WYSIWYG . Include, de asemenea, instrumente pentru conectarea directă a interogărilor SQL (fără formarea preliminară de matrice din acestea) la șabloane TBS etc.

Dezvoltatorii se referă la TBS ca pe un al treilea tip de sisteme de șabloane, unde primul tip este utilizarea PHP -ului ca sistem de șabloane , iar al doilea este șabloane programabile, cum ar fi în Smarty .

Biblioteca este implementată ca o clasă PHP care poate fi extinsă prin pluginuri personalizate și distribuită sub licența LGPL . Pluginurile includ un set de funcții PHP sau o singură clasă PHP care trebuie să se conformeze unei sintaxe speciale calculate de motorul de șabloane TBS. De exemplu: pluginuri de baze de date - simplifică procesul de recunoaștere a noilor tipuri de baze de date, alte plugin-uri ajută utilizatorul să adauge funcții de lucru în TBS sau să-și schimbe principalele metode, ceea ce face ca motorul de șabloane să fie mai specializat.

Utilizatorii diferitelor CMS și CMF au dezvoltat module de legare pentru acest motor de șablon. Printre astfel de sisteme se numără Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] etc.

Clasa de extensie TinyButStrong OOo a acestei biblioteci, care permite generarea de documente în format OpenOffice.org , a câștigat locul 5 în octombrie 2005 la PhpClasses Innovation Award [11]  , un concurs susținut de popularul site web PHPClasses .

Dezavantaje

Principalul dezavantaj al TBS este performanța lui lentă. Această bibliotecă realizează o analiză destul de complexă a codului HTML în momentul generării unei pagini HTML dintr-un șablon (TinyButStrong - spre deosebire de Smarty, acesta nu este un procesor de șablon de compilare). Cu toate acestea, problema poate fi rezolvată prin conectarea unui plugin de cache.

Un alt punct subtil este că, în ciuda simplității dezvoltării inițiale a acestui motor de șablon, pentru utilizarea sa suficient de „avansată”, este necesară înțelegerea mecanismelor interne ale bibliotecii. În caz contrar, este prea ușor să scrieți un șablon cu o eroare, comportament neintenționat sau performanță catastrofal de lentă.

Ușurința de utilizare a TinyButStrong (mai ales atunci când este asociat cu editorii HTML WYSIWYG ) duce adesea la utilizarea lui în site-urile fly-by-night, care, din cauza lipsei de suport sau a erorilor în codul sursă al aplicației web, încetează să mai funcționeze. în mod normal. O căutare pe google pentru rândul „TinyButStrong error” oferă statistici destul de triste despre „popularitatea” similară a acestei biblioteci.

Exemplu de cod

Următorul cod va scoate conținutul unui tabel MySQL ca un tabel HTML „în dungi” .

Partea HTML:

<html> <body> <p align= "center" class= "title-page" > Exemplu de conexiune de date MySQL </p> <table border= "1" align= "center" cellpadding= "2" cellspacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Locație </strong></td> <td width= "150" ><strong> Nick </strong></td > <td width= "50" ><strong> Puncte </strong></td> <td width= "100" ><div align= "center" ><strong> Data </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- bloc de expresie =tr declară limitele blocurilor, o buclă implicită peste înregistrările blk1 --> <td><div align= "right" > [blk1.res_score] </div></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-aaaa'] </div></td> </tr> <!-- două blocuri cu același nume sunt tratate ca secțiuni ale aceluiași bloc, --> < !-- care, dacă nu se specifică altfel, sunt executate secvenţial --> <tr bgcolor= "#E6E6E6" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </ td> <td><div align= "right" > [blk1.res_score] </di v></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-yyyy'] </div></td> </tr> <!-- Secțiunea NoData executat numai dacă blocul nu conține date --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Fără date. </td> </tr> </table> <p align= "center" > [blk1.#] ieșire de rânduri. </p> </body> </html>

Partea PHP:

<?php include_once ( 'tbs_class.php' ) ; // Conectați-vă la baza de date dacă ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 necesită ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // Fișierul cnx_mysql.php conține următoarele rânduri: // $cnx_id = mysql_connect('localhost','user','parola') ; // mysql_select_db('dbname',$cnx_id) ; // instanțiază TBS $TBS = clsTinyButStrong nou ; // încărcați șablonul $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // conectați datele pentru a fi afișate în tabelul $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_exemples' ) ; // închide baza de date mysql_close ( $cnx_id ) ; // Afișează HTML $TBS -> Afișează () ; ?>

Note

  1. Timothy Boronczyk (Autor), Martin E. Psinas (Colaborator). Ch. 1 Înregistrare utilizator / Șabloane // PHP și MySQL: create-modify-reuse. - Wrox , 5 mai 2008. - P. 11. - 341 p. - (De la programator la programator). — ISBN 0470192429 .
  2. 19 Promising PHP Template Engines Arhivat 8 martie 2010 la Wayback Machine și link către acest articol Arhivat 26 septembrie 2009 la Wayback Machine la phpdeveloper.org Arhivat 28 ianuarie 2010 la Wayback Machine
  3. Top 25 de motoare de șabloane PHP . Data accesului: 31 ianuarie 2010. Arhivat din original pe 7 martie 2010.
  4. Căutăm o alternativă la Smarty . Data accesului: 30 ianuarie 2010. Arhivat din original pe 8 martie 2010.
  5. Articole dinamice cu TinyButStrong Arhivat din original pe 11 februarie 2010.
  6. Motorul de șabloane TinyButStrong către ModX (link descendent) . Data accesului: 30 ianuarie 2010. Arhivat din original pe 7 aprilie 2010. 
  7. TinyButStrong Template Engine Arhivat 10 martie 2010.
  8. Thomas Myer. Ch 1. Bun venit în MVC World / O abordare ușor diferită: șabloane / Utilizarea sistemelor de șabloane terțe // Professional CodeIgniter. - 1 editie. - Wrox , 28 iulie 2008. - P. 18. - ISBN 0470282452 .
  9. Motorul de șabloane TinyButStrong în cadrul Kohana PHP (downlink) . Data accesului: 30 ianuarie 2010. Arhivat din original la 14 februarie 2010. 
  10. Plugin sfTinyDoc . Consultat la 30 ianuarie 2010. Arhivat din original pe 10 februarie 2010.
  11. TinyButStrong OOo (OpenOffice, birou) - Clase PHP . Data accesului: 30 ianuarie 2010. Arhivat din original la 23 ianuarie 2010.

Vezi și

Link -uri