TinyButStrong

TinyButStrong
Sorts Mallprocessor
Skrivet i PHP
Operativ system Programvara för flera plattformar
senaste versionen 3,9 (26 januari 2014)
Licens GNU LGPL
Hemsida tinybutstrong.com

TinyButStrong (förkortning TBS) är en relativt lätt tolkande webbmallmotor för PHP [ 1] . Listas i ett antal internetrecensioner som de bästa PHP -mallhanterarna [2] [3] [4] .

Funktioner

Verktyget TinyButStrong har utformats för att kunna designa mallar med enkel användning av visuella redigerare (som Dreamweaver eller FrontPage ) och låter dig även skapa JavaScript- skript dynamiskt. Detta verktyg innehåller endast 8 funktioner, samtidigt som det ger hög prestanda. Detta gör att mallar kan kombineras med PHP-variabler eller MySQL , PostgreSQL eller SQLite databashanteringssystem .

Till skillnad från till exempel är Smarty inte en variant på temat för ett procedurprogrammeringsspråk , utan använder mekanismer för att länka malltaggar till strukturen och HTML -taggar . Detta gör det enkelt att använda med WYSIWYG HTML-redigerare. Den innehåller också verktyg för att direkt koppla SQL -frågor (utan preliminär bildning av arrayer från dem) till TBS-mallar, etc.

Utvecklare hänvisar till TBS som en tredje typ av mallsystem, där den första typen är användningen av PHP som mallsystem och den andra är programmerbara mallar, som i Smarty .

Biblioteket är implementerat som en PHP -klass som kan utökas med anpassade plugins och distribueras under LGPL -licensen . Plugins inkluderar en uppsättning PHP-funktioner eller en enda PHP-klass som måste överensstämma med en speciell syntax som beräknas av TBS-mallmotorn. Till exempel: databasplugins - förenkla processen att känna igen nya databastyper, andra plugins hjälper användaren att lägga till arbetsfunktioner till TBS eller ändra dess huvudsakliga metoder, vilket gör mallmotorn mer specialiserad.

Användare av olika CMS och CMF har utvecklat bindningsmoduler för denna mallmotor. Bland sådana system finns Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] etc.

Tilläggsklassen TinyButStrong OOo i detta bibliotek, som tillåter generering av dokument i OpenOffice.org -formatet , vann en 5:e plats i oktober 2005 i PhpClasses Innovation Award [11]  , en tävling som hölls av den populära PHPClasses- webbplatsen .

Nackdelar

Den största nackdelen med TBS är dess långsamma prestanda. Det här biblioteket utför en ganska komplex analys av HTML-kod vid tidpunkten för generering av en HTML-sida från en mall (TinyButStrong - till skillnad från Smarty är detta inte en kompileringsmallprocessor). Problemet kan dock lösas genom att ansluta en caching-plugin.

En annan subtil punkt är att, trots enkelheten i den initiala utvecklingen av denna mallmotor, för dess tillräckligt "avancerade" användning, är det nödvändigt att förstå de interna mekanismerna i biblioteket. Annars är det alltför lätt att skriva en mall med ett fel, oavsiktligt beteende eller katastrofalt långsam prestanda.

Lättheten att använda TinyButStrong (särskilt när den är ihopkopplad med WYSIWYG HTML - redigerare ) leder ofta till att den används på fly-by-night-webbplatser, som, på grund av brist på support eller fel i webbapplikationens källkod, snart slutar fungera i vanliga fall. En sökning på google efter raden "TinyButStrong error" ger ganska sorglig statistik om liknande "popularitet" för detta bibliotek.

Exempelkod

Följande kod matar ut innehållet i en MySQL-tabell som en "randig" HTML- tabell.

HTML-del:

<html> <body> <p align= "center" class= "title-page" > Exempel på MySQL-dataanslutning </p> <table border= "1" align= "center" cellpadding= "2" cellspacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Plats </strong></td> <td width= "150" ><strong> Nick </strong></ td > <td width= "50" ><strong> Poäng </strong></td> <td width= "100" ><div align= "center" ><strong> Datum </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- uttrycksblock =tr deklarerar blockgränser, en implicit loop över 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> <!-- två block med samma namn behandlas som sektioner av samma block, --> < !-- som, om inte annat anges, exekveras sekventiellt --> <tr bgcolor= "#E6E6E6" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </ td> 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-avsnittet exekveras endast om blocket inte innehåller några data --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Inga data. </td> </tr> </table> <p align= "center" > [blk1.#] rader. </p> </body> </html>

PHP del:

<?php include_once ( 'tbs_class.php' ) ; // Anslut till databasen om ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 kräver ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // Filen cnx_mysql.php innehåller följande rader: // $cnx_id = mysql_connect('localhost','user','password'); // mysql_select_db('dbname',$cnx_id) ; // instansiera TBS $TBS = ny clsTinyButStrong ; // ladda mall $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // anslut data för att visa i tabellen $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_exemples' ) ; // stäng databasen mysql_close ( $cnx_id ) ; // Visa HTML $TBS -> Visa () ; ?>

Anteckningar

  1. Timothy Boronczyk (författare), Martin E. Psinas (bidragsgivare). Ch. 1 Användarregistrering / Mallar // PHP och MySQL: create-modify-reuse. - Wrox , 5 maj 2008. - S. 11. - 341 sid. - (Programmerare till programmerare). — ISBN 0470192429 .
  2. 19 Lovande PHP-mallmotorer arkiverade 8 mars 2010 på Wayback Machine och länk till denna artikel Arkiverade 26 september 2009 på Wayback Machinephpdeveloper.org Arkiverade 28 januari 2010 på Wayback Machine
  3. Topp 25 PHP-mallmotorer . Tillträdesdatum: 31 januari 2010. Arkiverad från originalet den 7 mars 2010.
  4. Vi letar efter ett alternativ till Smarty . Datum för åtkomst: 30 januari 2010. Arkiverad från originalet den 8 mars 2010.
  5. Dynamiska artiklar med TinyButStrong Arkiverade från originalet den 11 februari 2010.
  6. TinyButStrong mallmotor till ModX (nedlänk) . Datum för åtkomst: 30 januari 2010. Arkiverad från originalet den 7 april 2010. 
  7. TinyButStrong Template Engine Arkiverad 10 mars 2010.
  8. Thomas Myer. Kapitel 1. Välkommen till MVC World / Ett lite annorlunda tillvägagångssätt: Mallar / Använda tredjeparts mallsystem // Professional CodeIgniter. - 1 upplaga. - Wrox , 28 juli 2008. - P. 18. - ISBN 0470282452 .
  9. TinyButStrong mallmotor i Kohana PHP-ramverk (nedlänk) . Datum för åtkomst: 30 januari 2010. Arkiverad från originalet den 14 februari 2010. 
  10. sfTinyDoc-plugin . Hämtad 30 januari 2010. Arkiverad från originalet 10 februari 2010.
  11. TinyButStrong OOo (OpenOffice, kontor) - PHP-klasser . Datum för åtkomst: 30 januari 2010. Arkiverad från originalet den 23 januari 2010.

Se även

Länkar