TinyButStrong | |
---|---|
Típusú | Sablon processzor |
Beírva | PHP |
Operációs rendszer | Többplatformos szoftver |
legújabb verzió | 3,9 (2014. január 26.) |
Engedély | GNU LGPL |
Weboldal | tinybutstrong.com |
A TinyButStrong (rövidítve TBS) egy viszonylag könnyű értelmező websablon motor PHP - hez [ 1] . Számos internetes ismertetőben szerepel a legjobb PHP sablonkezelőként [2] [3] [4] .
A TinyButStrong eszközt úgy tervezték, hogy képes legyen sablonokat tervezni vizuális szerkesztők (például Dreamweaver vagy FrontPage ) egyszerű használatával, és lehetővé teszi JavaScript - szkriptek dinamikus létrehozását is. Ez az eszköz mindössze 8 funkciót tartalmaz, miközben nagy teljesítményt nyújt. Ez lehetővé teszi a sablonok kombinálását PHP változókkal vagy MySQL , PostgreSQL vagy SQLite adatbázis-kezelő rendszerekkel .
Ellentétben például, a Smarty nem egy procedurális programozási nyelv témájának variációja , hanem olyan mechanizmusokat használ, amelyek a sabloncímkéket a szerkezethez és a HTML címkékhez kapcsolják . Ez megkönnyíti a WYSIWYG HTML szerkesztőkkel való használatát. Eszközöket is tartalmaz az SQL - lekérdezések közvetlen összekapcsolásához (anélkül, hogy előzetesen tömböt alakítanának ki belőlük) TBS-sablonokhoz stb.
A fejlesztők a TBS-re a sablonrendszerek harmadik típusaként hivatkoznak, ahol az első típus maga a PHP sablonrendszerként való használata , a második pedig a programozható sablonok, például a Smarty -ban .
A könyvtár PHP osztályként valósult meg, amely egyéni bővítményekkel bővíthető és LGPL licenc alatt terjeszthető . A beépülő modulok PHP-függvényeket vagy egyetlen PHP-osztályt tartalmaznak, amelyeknek meg kell felelniük a TBS-sablonmotor által kiszámított speciális szintaxisnak. Például: adatbázis-bővítmények - leegyszerűsítik az új adatbázis-típusok felismerésének folyamatát, más bővítmények pedig segítik a felhasználót, hogy működő funkciókat adjon a TBS-hez, vagy módosítsa a fő metódusait, ami speciálisabbá teszi a sablonmotort.
A különféle CMS -ek és CMF -felhasználók kötési modulokat fejlesztettek ki ehhez a sablonmotorhoz. Ilyen rendszerek közé tartozik a Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] stb.
Ennek a könyvtárnak a TinyButStrong OOo bővítményosztálya, amely lehetővé teszi dokumentumok OpenOffice.org formátumban történő előállítását , 2005 októberében 5. helyezést ért el a PhpClasses Innovation Award [11] versenyen, amelyet a népszerű PHPClasses webhely rendezett .
A TBS fő hátránya a lassú teljesítménye. Ez a könyvtár a HTML-kód meglehetősen összetett elemzését végzi el, amikor egy HTML-oldalt sablonból generál (TinyButStrong - a Smarty-val ellentétben ez nem egy fordítósablon-processzor). A probléma azonban megoldható egy gyorsítótárazó bővítmény csatlakoztatásával.
Egy másik finom pont az, hogy a sablonmotor kezdeti fejlesztésének egyszerűsége ellenére a kellően "fejlett" használathoz meg kell érteni a könyvtár belső mechanizmusait. Ellenkező esetben túl könnyű sablont írni hibával, nem szándékos viselkedéssel vagy katasztrofálisan lassú teljesítménnyel.
A TinyButStrong könnyű használhatósága (különösen a WYSIWYG HTML - szerkesztőkkel párosítva ) gyakran vezet a „fly-by-night” webhelyeken történő használatához, amelyek a támogatás hiánya vagy a webalkalmazás forráskódjának hibái miatt hamarosan működésképtelenné válnak. normális esetben. A google-ban a "TinyButStrong error" sorra keresve elég szomorú statisztikákat kapunk a könyvtár hasonló "népszerűségéről".
A következő kód egy MySQL-tábla tartalmát "csíkos" HTML -táblaként adja ki .
HTML rész:
<html> <body> <p align= "center" class= "title-page" > MySQL adatkapcsolati példa </p> <table border= "1" align= "center" cellpadding= "2" cellspacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Hely </strong></td> <td width= "150" ><strong> Nick </strong></ td > <td width= "50" ><strong> Pontok </strong></td> <td width= "100" ><div align= "center" ><strong> Dátum </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- kifejezésblokk A =tr blokkhatárokat deklarál, egy implicit hurkot a blk1 rekordok felett --> <td><div align= "right" > [blk1.res_score] </div></td> <td><div align= "center" > [blk1.res_date;frm='hh-nn-yyyy'] </div></td> </tr> <!-- két azonos nevű blokkot ugyanannak a blokknak a szakaszaiként kezelünk, --> < !-- amelyek, hacsak másképp nincs megadva, szekvenciálisan hajtódnak végre --> <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='hh-nn-yyyy'] </div></td> </tr> <!-- NoData szakasz csak akkor kerül végrehajtásra, ha a blokk nem tartalmaz adatot --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Nincs adat. </td> </tr> </table> <p align= "center" > [blk1.#] soros kimenet. </p> </body> </html>PHP rész:
<?php include_once ( 'tbs_class.php' ) ; // Csatlakozás az adatbázishoz if ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 igényel ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // A cnx_mysql.php fájl a következő sorokat tartalmazza: // $cnx_id = mysql_connect('localhost','user','password') ; // mysql_select_db('dbname',$cnx_id) ; // TBS példányosítása $TBS = new clsTinyButStrong ; // sablon betöltése $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // a táblázatban megjelenítendő adatok összekapcsolása $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_examples' ) ; // az adatbázis bezárása mysql_close ( $cnx_id ) ; // HTML megjelenítése $TBS -> Megjelenítés () ; ?>