TinyButStrong | |
---|---|
Tyyppi | Mallin prosessori |
Sisään kirjoitettu | PHP |
Käyttöjärjestelmä | Monialustainen ohjelmisto |
uusin versio | 3,9 (26. tammikuuta 2014) |
Lisenssi | GNU LGPL |
Verkkosivusto | tinybutstrong.com |
TinyButStrong (lyhennetty TBS) on suhteellisen kevyt tulkitseva web-mallipohja PHP :lle [ 1] . Listattu useissa Internet-arvosteluissa parhaiksi PHP - mallinkäsittelijöiksi [2] [3] [4] .
TinyButStrong-työkalu on suunniteltu pystymään suunnittelemaan malleja käyttämällä yksinkertaisia visuaalisia muokkausohjelmia (kuten Dreamweaver tai FrontPage ), ja sen avulla voit myös luoda JavaScript - skriptejä dynaamisesti. Tämä työkalu sisältää vain 8 toimintoa ja tarjoaa samalla korkean suorituskyvyn. Tämä mahdollistaa mallien yhdistämisen PHP - muuttujien tai MySQL - , PostgreSQL - tai SQLite - tietokannanhallintajärjestelmien kanssa .
Toisin kuin esimerkiksi, Smarty ei ole muunnelma prosessiohjelmointikielen teemasta , vaan käyttää mekanismeja mallitunnisteiden linkittämiseen rakenteeseen ja HTML -tageihin . Tämä tekee siitä helpon käyttää WYSIWYG HTML -editorien kanssa. Se sisältää myös työkalut SQL - kyselyiden suoraa yhdistämiseen (ilman alustavaa taulukoiden muodostamista niistä) TBS-malleihin jne.
Kehittäjät viittaavat TBS:ään kolmantena mallijärjestelmänä, jossa ensimmäinen tyyppi on itse PHP :n käyttö mallijärjestelmänä ja toinen on ohjelmoitavia malleja, kuten Smartyssa .
Kirjasto on toteutettu PHP- luokkana , jota voidaan laajentaa mukautetuilla lisäosilla ja jakaa LGPL - lisenssillä . Laajennukset sisältävät joukon PHP-funktioita tai yhden PHP-luokan, jonka on noudatettava TBS-mallikoneen laskemaa erityistä syntaksia. Esimerkiksi: tietokantalaajennukset - yksinkertaistavat uusien tietokantatyyppien tunnistamisprosessia, muut lisäosat auttavat käyttäjää lisäämään toimivia toimintoja TBS:ään tai muuttamaan sen päämenetelmiä, mikä tekee mallimoottorista erikoistuneen.
Eri CMS- ja CMF -käyttäjien käyttäjät ovat kehittäneet sidontamoduuleja tälle mallipohjalle. Tällaisia järjestelmiä ovat Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] jne.
Tämän kirjaston TinyButStrong OOo -laajennusluokka, joka mahdollistaa asiakirjojen luomisen OpenOffice.org -muodossa , voitti 5. sijan lokakuussa 2005 PhpClasses Innovation Award -kilpailussa [11] , joka on suosittu PHPClasses- sivuston järjestämä kilpailu .
TBS:n suurin haitta on sen hidas suorituskyky. Tämä kirjasto suorittaa melko monimutkaisen analyysin HTML-koodista, kun luodaan HTML-sivu mallipohjasta (TinyButStrong - toisin kuin Smarty, tämä ei ole käännösmalliprosessori). Ongelma voidaan kuitenkin ratkaista yhdistämällä välimuistilaajennus.
Toinen hienovarainen seikka on, että huolimatta tämän mallikoneen alkuperäisen kehityksen yksinkertaisuudesta, sen riittävän "edistynyttä" käyttöä varten on välttämätöntä ymmärtää kirjaston sisäiset mekanismit. Muuten on aivan liian helppoa kirjoittaa mallia, jossa on virhe, tahaton toiminta tai katastrofaalisen hidas suorituskyky.
TinyButStrongin helppokäyttöisyys (varsinkin kun se on yhdistetty WYSIWYG HTML - editorien kanssa ) johtaa usein sen käyttöön fly-by-night-sivustoissa, jotka tuen puutteen tai verkkosovelluksen lähdekoodin virheiden vuoksi lakkaavat pian toimimasta. yleensä. Googlen haku rivillä "TinyButStrong error" antaa varsin surullisia tilastoja tämän kirjaston samanlaisesta "suosiosta".
Seuraava koodi tulostaa MySQL-taulukon sisällön "raidallisena" HTML - taulukkona.
HTML-osa:
<html> <body> <p align= "center" class= "title-page" > MySQL-tietoyhteysesimerkki </p> <table border= "1" align= "center" cellpadding= "2" cellspacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Sijainti </strong></td> <td width= "150" ><strong> Nimimerkki </strong></ td > <td width= "50" ><strong> Pisteet </strong></td> <td width= "100" ><div align= "center" ><strong> Päivämäärä </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- lausekelohko =tr ilmoittaa lohkorajat, implisiittisen silmukan blk1-tietueiden yli --> <td><div align= "right" > [blk1.res_score] </div></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-yyyy'] </div></td> </tr> <!-- kahta samannimistä lohkoa käsitellään saman lohkon osina, --> < !-- jotka, ellei toisin mainita, suoritetaan peräkkäin --> <tr bgcolor= "#E6E6E6" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </ td> <td><div align= "oikea" > [blk1.res_score] </di v></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-yyyy'] </div></td> </tr> <!-- NoData-osio suoritetaan vain, jos lohko ei sisällä tietoja --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Ei tietoja. </td> </tr> </table> <p align= "center" > [blk1.#] rivin tulos. </p> </body> </html>PHP osa:
<?php include_once ( 'tbs_class.php' ) ; // Yhdistä tietokantaan if ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 vaatia ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // Tiedosto cnx_mysql.php sisältää seuraavat rivit: // $cnx_id = mysql_connect('localhost','user','password') ; // mysql_select_db('dbname',$cnx_id) ; // Instantiate TBS $TBS = uusi clsTinyButStrong ; // lataa malli $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // yhdistä taulukossa näytettävät tiedot $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_examples' ) ; // sulje tietokanta mysql_close ( $cnx_id ) ; // Näytä HTML $TBS -> Näytä () ; ?>