TinyButStrong

TinyButStrong
Type Skabelon processor
Skrevet i PHP
Operativ system Cross-platform software
nyeste version 3,9 (26. januar 2014)
Licens GNU LGPL
Internet side tinybutstrong.com

TinyButStrong (forkortet TBS) er en relativt let fortolkende webskabelonmotor til PHP [ 1] . Opført i en række internetanmeldelser som de bedste PHP - skabelonbehandlere [2] [3] [4] .

Funktioner

TinyButStrong-værktøjet er designet til at kunne designe skabeloner med den enkle brug af visuelle editorer (såsom Dreamweaver eller FrontPage ) og giver dig også mulighed for at oprette JavaScript -scripts dynamisk. Dette værktøj indeholder kun 8 funktioner, samtidig med at det giver høj ydeevne. Dette gør det muligt at kombinere skabeloner med PHP-variabler eller MySQL- , PostgreSQL- eller SQLite- databasestyringssystemer .

I modsætning til f.eks. er Smarty ikke en variation over temaet for et proceduremæssigt programmeringssprog, men bruger mekanismer til at linke skabelontags til strukturen og HTML -tags . Dette gør det nemt at bruge med WYSIWYG HTML-editorer. Det inkluderer også værktøjer til direkte at forbinde SQL -forespørgsler (uden foreløbig dannelse af arrays fra dem) til TBS-skabeloner osv.

Udviklere omtaler TBS som en tredje type skabelonsystemer, hvor den første type er brugen af ​​selve PHP som et skabelonsystem , og den anden er programmerbare skabeloner, såsom i Smarty .

Biblioteket er implementeret som en PHP -klasse , der kan udvides med brugerdefinerede plugins og distribueres under LGPL -licensen . Plugins inkluderer et sæt PHP-funktioner eller en enkelt PHP-klasse, der skal være i overensstemmelse med en speciel syntaks beregnet af TBS-skabelonmotoren. For eksempel: database plugins - forenkle processen med at genkende nye databasetyper, andre plugins hjælper brugeren med at tilføje arbejdsfunktioner til TBS eller ændre dens hovedmetoder, hvilket gør skabelonmotoren mere specialiseret.

Brugere af forskellige CMS og CMF har udviklet bindingsmoduler til denne skabelonmotor. Blandt sådanne systemer er Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] osv.

TinyButStrong OOo-udvidelsesklassen i dette bibliotek, som tillader generering af dokumenter i OpenOffice.org -formatet , vandt 5. pladsen i oktober 2005 i PhpClasses Innovation Award [11]  , en konkurrence afholdt af det populære PHPClasses- websted .

Ulemper

Den største ulempe ved TBS er dens langsomme ydeevne. Dette bibliotek udfører en ret kompleks analyse af HTML-kode på tidspunktet for generering af en HTML-side fra en skabelon (TinyButStrong - i modsætning til Smarty er dette ikke en kompileringsskabelonprocessor). Problemet kan dog løses ved at tilslutte et caching-plugin.

Et andet subtilt punkt er, at på trods af enkelheden i den indledende udvikling af denne skabelonmotor, for dens tilstrækkeligt "avancerede" brug, er det nødvendigt at forstå de interne mekanismer i biblioteket. Ellers er det alt for nemt at skrive en skabelon med en fejl, utilsigtet adfærd eller katastrofalt langsom ydeevne.

Brugervenligheden af ​​TinyButStrong (især når den er parret med WYSIWYG HTML - editorer ) fører ofte til, at den bruges på fly-by-night-websteder, som på grund af manglende support eller fejl i kildekoden til webapplikationen snart holder op med at fungere normalt. En søgning i google efter linjen "TinyButStrong error" giver en ret trist statistik om den lignende "popularitet" af dette bibliotek.

Eksempelkode

Følgende kode vil udlæse indholdet af en MySQL-tabel som en "stribet" HTML - tabel.

HTML del:

<html> <body> <p align= "center" class= "title-page" > Eksempel på MySQL-dataforbindelse </p> <table border= "1" align= "center" cellpadding= "2" cellspacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Placering </strong></td> <td width= "150" ><strong> Nick </strong></ td > <td width= "50" ><strong> Points </strong></td> <td width= "100" ><div align= "center" ><strong> Dato </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- udtryksblok =tr erklærer blokgrænser, en implicit sløjfe over blk1-poster --> <td><div align= "right" > [blk1.res_score] </div></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-yyyy'] </div></td> </tr> <!-- to blokke af samme navn behandles som sektioner af samme blok, --> < !-- som, medmindre andet er angivet, udføres sekventielt --> <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> <!-- NoData sektion udføres kun, hvis blokken ikke indeholder data --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Ingen data. </td> </tr> </table> <p align= "center" > [blk1.#] rækker output. </p> </body> </html>

PHP del:

<?php include_once ( 'tbs_class.php' ) ; // Opret forbindelse til databasen hvis ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 kræver ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // Filen cnx_mysql.php indeholder følgende linjer: // $cnx_id = mysql_connect('localhost','user','password'); // mysql_select_db('dbnavn',$cnx_id) ; // instantiate TBS $TBS = new clsTinyButStrong ; // indlæs skabelon $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // tilslut data til visning i tabellen $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_exemples' ) ; // luk databasen mysql_close ( $cnx_id ) ; // Vis HTML $TBS -> Vis () ; ?>

Noter

  1. Timothy Boronczyk (forfatter), Martin E. Psinas (bidragyder). Ch. 1 Brugerregistrering / Skabeloner // PHP og MySQL: create-modify-reuse. - Wrox , 5. maj 2008. - S. 11. - 341 s. - (Programmer til Programmer). — ISBN 0470192429 .
  2. 19 lovende PHP-skabelonmotorer arkiveret 8. marts 2010 på Wayback-maskinen og link til denne artikel Arkiveret 26. september 2009 på Wayback-maskinenphpdeveloper.org Arkiveret 28. januar 2010 på Wayback-maskinen
  3. Top 25 PHP-skabelonmotorer . Dato for adgang: 31. januar 2010. Arkiveret fra originalen den 7. marts 2010.
  4. Vi leder efter et alternativ til Smarty . Dato for adgang: 30. januar 2010. Arkiveret fra originalen 8. marts 2010.
  5. Dynamiske artikler med TinyButStrong Arkiveret fra originalen den 11. februar 2010.
  6. TinyButStrong skabelonmotor til ModX (downlink) . Dato for adgang: 30. januar 2010. Arkiveret fra originalen den 7. april 2010. 
  7. TinyButStrong Template Engine Arkiveret 10. marts 2010.
  8. Thomas Myer. Kapitel 1. Velkommen til MVC World / En lidt anderledes tilgang: Skabeloner / Brug af tredjeparts skabelonsystemer // Professionel CodeIgniter. - 1 udgave. - Wrox , 28. juli 2008. - S. 18. - ISBN 0470282452 .
  9. TinyButStrong skabelonmotor i Kohana PHP framework (downlink) . Dato for adgang: 30. januar 2010. Arkiveret fra originalen 14. februar 2010. 
  10. sfTinyDoc plugin . Hentet 30. januar 2010. Arkiveret fra originalen 10. februar 2010.
  11. TinyButStrong OOo (OpenOffice, kontor) - PHP-klasser . Dato for adgang: 30. januar 2010. Arkiveret fra originalen 23. januar 2010.

Se også

Links