diminutoperofuerte | |
---|---|
Tipo de | Procesador de plantillas |
Escrito en | PHP |
Sistema operativo | Software multiplataforma |
ultima versión | 3.9 (26 de enero de 2014) |
Licencia | GNU LGPL |
Sitio web | tinybutstrong.com |
TinyButStrong (abbr. TBS) es un motor de plantilla web interpretativo relativamente ligero para PHP [ 1] . Incluido en una serie de revisiones de Internet como los mejores controladores de plantillas PHP [2] [3] [4] .
La herramienta TinyButStrong ha sido diseñada para poder diseñar plantillas con el simple uso de editores visuales (como Dreamweaver o FrontPage ) y también permite crear scripts JavaScript de forma dinámica. Esta herramienta contiene solo 8 funciones, a la vez que proporciona un alto rendimiento. Esto permite combinar plantillas con variables de PHP o sistemas de gestión de bases de datos MySQL , PostgreSQL o SQLite .
A diferencia de, por ejemplo, Smarty no es una variación del tema de un lenguaje de programación procedimental, sino que utiliza mecanismos para vincular etiquetas de plantilla a la estructura y etiquetas HTML . Esto facilita su uso con editores HTML WYSIWYG . También incluye herramientas para conectar consultas SQL directamente (sin formación preliminar de matrices a partir de ellas) a plantillas TBS, etc.
Los desarrolladores se refieren a TBS como un tercer tipo de sistemas de plantillas, donde el primer tipo es el uso de PHP como sistema de plantillas , y el segundo son plantillas programables, como en Smarty .
La biblioteca se implementa como una clase de PHP que puede ampliarse mediante complementos personalizados y distribuirse bajo la licencia LGPL . Los complementos incluyen un conjunto de funciones de PHP o una sola clase de PHP que debe ajustarse a una sintaxis especial calculada por el motor de plantillas de TBS. Por ejemplo: complementos de bases de datos: simplifican el proceso de reconocimiento de nuevos tipos de bases de datos, otros complementos ayudan al usuario a agregar funciones de trabajo a TBS o cambiar sus métodos principales, lo que hace que el motor de plantillas sea más especializado.
Los usuarios de varios CMS y CMF han desarrollado módulos vinculantes para este motor de plantillas. Entre tales sistemas se encuentran Joomla , [5] MODx , [6] CodeIgniter , [7] [8] Kohana , [9] Symfony [10] , etc.
La clase de extensión TinyButStrong OOo de esta biblioteca, que permite generar documentos en el formato OpenOffice.org , ganó el quinto lugar en octubre de 2005 en el PhpClasses Innovation Award [11] , un concurso realizado por el popular sitio web PHPClasses .
La principal desventaja de TBS es su lento rendimiento. Esta biblioteca realiza un análisis bastante complejo del código HTML en el momento de generar una página HTML a partir de una plantilla (TinyButStrong, a diferencia de Smarty, este no es un procesador de plantillas de compilación). Sin embargo, el problema se puede resolver conectando un complemento de almacenamiento en caché.
Otro punto sutil es que, a pesar de la sencillez del desarrollo inicial de este motor de plantillas, para su uso suficientemente “avanzado”, es necesario entender los mecanismos internos de la librería. De lo contrario, es demasiado fácil escribir una plantilla con un error, un comportamiento no deseado o un rendimiento catastróficamente lento.
La facilidad de uso de TinyButStrong (especialmente cuando se combina con editores de HTML WYSIWYG ) a menudo conduce a su uso en sitios de vuelo nocturno que, debido a la falta de soporte o errores en el código fuente de la aplicación web, pronto dejan de funcionar. normalmente. Una búsqueda en Google de la línea "TinyButStrong error" arroja estadísticas bastante tristes sobre la "popularidad" similar de esta biblioteca.
El siguiente código generará el contenido de una tabla MySQL como una tabla HTML "rayada" .
parte HTML:
<html> <body> <p align= "center" class= "title-page" > Ejemplo de conexión de datos de MySQL </p> <table border= "1" align= "center" cellpadding= "2" cellpacing= " 0 " > <tr bgcolor= "#CACACA" > <td width= "50" ><strong> Ubicación </strong></td> <td width= "150" ><strong> Nick </strong></ td > <td ancho= "50" ><strong> Puntos </strong></td> <td ancho= "100" ><div align= "centro" ><strong> Fecha </strong></div> < /td> </tr> <tr bgcolor= "#F0F0F0" > <td> [blk1.#] </td> <td> [blk1.res_name;block=tr] </td> <!-- bloque de expresión =tr declara los límites del bloque, un bucle implícito sobre los registros de blk1 --> <td><div align= "right" > [blk1.res_score] </div></td> <td><div align= "center" > [blk1.res_date;frm='mm-dd-yyyy'] </div></td> </tr> <!-- dos bloques del mismo nombre se tratan como secciones del mismo bloque, --> < !-- que, a menos que se especifique lo contrario, se ejecutan secuencialmente --> <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> <!-- Sección NoData se ejecuta solo si el bloque no contiene datos --> <tr bgcolor= "#E6E6E6" > <td colspan= "4" bgcolor= "#FFCFB9" > [blk1;block=tr;nodata]Sin datos. </td> </tr> </table> <p align= "center" > [blk1.#] salida de filas. </p> </cuerpo> </html>Parte PHP:
<?php include_once ( 'tbs_class.php' ) ; // Conectarse a la base de datos if ( ! isset ( $_SERVER )) $_SERVER =& $HTTP_SERVER_VARS ; //PHP<4.1.0 require ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/cnx_mysql.php' ); // El archivo cnx_mysql.php contiene las siguientes líneas: // $cnx_id = mysql_connect('localhost','user','password') ; // mysql_select_db('nombrebd',$cnx_id) ; // instanciar TBS $TBS = new clsTinyButStrong ; // cargar plantilla $TBS -> LoadTemplate ( 'tbs_us_examples_datamysql.htm' ) ; // conectar datos para mostrar en la tabla $TBS -> MergeBlock ( 'blk1' , $cnx_id , 'SELECT * FROM t_tbs_exemples' ) ; // cerrar la base de datos mysql_close ( $cnx_id ) ; // Mostrar HTML $TBS -> Mostrar () ; ?>