Pourquoi l'utiliser ? Exemples Téléchargements Manuel Plug-ins Autres outils Support Forum Témoignages Vos sites
English 
Pourquoi utiliser TinyButStrong ?

new PHP, Smarty ou TinyButStrong ? Lisez l'article (en anglais) Doing PHP templates of the third kind.

 

Voici une FAQ pour ceux qui n'utilisent pas encore TinyButStrong.
Une autre FAQ pour les utilisateurs se trouve dans la rubrique Support.

Vue d'ensemble :
  Six raisons d'intégrer TinyButStrong dans vos applications Web
Quelles différences avec les autres moteurs de Templates ?
Pourquoi 'tiny' et pourquoi 'strong' ?
Est-ce gratuit ?
Puis-je modifier le code source ?
Approche technique :
  Pourquoi TinyButStrong supporte des bases de données ?
Quelles bases de données sont supportées ?
Pourquoi y-t-il un système de 'cache' ?
Peut-on 'compiler' les modèles ?
Pourquoi le délimiteur par défaut sont [] au lieu de {} ?



Six raisons d'intégrer TinyButStrong dans vos applications Web


-> Vos applications seront développées plus rapidement.
-> Votre code sera plus organisé, plus propre et plus claire à lire (plus d'info ici).
-> TinyButStrong est un outil simple qui séduira pro et débutants.
-> C'est un composant très simple à installer.
-> Php : un langage populaire, standard et gratuit.
-> Licence LGPL : TinyButStrong est un composant gratuit et modifiable.



Quelles différences avec les autres moteurs de Templates ?


TinyButStrong est conçu comme un outil de reporting et d'interface spécialisé pour le Web.
Ce concept permet de réaliser petits et gros projets plus rapidement et plus simplement.
Voici ses trois particularités :

1 : Pas de programmation dans les modèles.

Dans la plupart des moteurs de Template, les boucles et modifications des variables sont programmés dans le modèle lui même.
Par exemple, pour multiplier les lignes d'un tableau, vous aurez :

  Partie Html sans TinyButStrong : {section name=sec1 loop=$nbr}
<tr>...</tr>
{/section}
  Partie Php : $Obj->Do('sec1');

Avec TinyButStrong , il n'y a pas de commandes à programmer dans vos modèles.
Si vous voulez multiplier les lignes d'un tableau, utilisez un bloc que vous combinez avec une source de données en une seule instruction Php. Exemple :

  Partie Html avec TinyButStrong : <tr>...[sec1;block=tr]...</tr>
  Partie Php : $TBS->MergeBlock('sec1',$nbr) ;

TinyButStrong accepte une large gamme de source de données. Vous pouvez gérer les exceptions d'affichage des données grâce à des conditions d'affichage et des fonctions Php évènementielles. Mais programmation et design sont toujours parfaitement séparés. TinyButStrong propose aussi des options spéciales pour les problèmes classiques de couleurs alternées, affichage en colonne, entête de groupe.

2 : Des balises simples et visibles avec tous les logiciels Html visuels.

TinyButStrong est le seul moteur de Template dont les balises peuvent être visibles sous tous les éditeurs Html visuels.
Ceci est possible grâce à un positionnement relatif des balises. Leur syntaxe est aussi plus simple et plus claire.

Voici un exemple qui illustre comment on défini un bloc délimité par la ligne d'un tableau :

Sans TinyButStrong Avec TinyButStrong En mode visuel
<table border="1">
  {section name=sec1}
  <tr>
    <td>
hello</td>
  </tr>

  {/section }
</table>
<table border="1">
  <tr>
    <td>
hello[sec1;block=tr]</td>
  </tr>
</table>
Hello[sec1;block=tr]


Si la syntaxe des balises relatives de TinyButStrong ne vous convient pas, il existe tout de même une syntaxe absolue traditionnelle.

3 : Vous ne perdez pas de temps à programmer la lecture des données.

Afficher les informations de votre base de données, est l'opération la plus courante dans une application Web.
Une seule instruction Php vous suffit pour réaliser les boucles de lecture des données et leur affichage dans les modèles. TinyButStrong reconnaît en natif les bases MySQL, PostgreSQL, SQLite et les tableaux PHP. Si vous utilisez d'autres bases de données, TinyButStrong s'y adapte grâce à des plug-ins de base de données que vous ajoutez à votre programme.



Pourquoi 'tiny' et pourquoi 'strong' ?


Tiny : parce qu'il n'a qu'un seul fichier à installer. Il est constitué d'une seule classe avec 6 méthodes et 5 propriétés.
Pour comparer le moteur Smarty est constitué de plusieurs fichiers, sa classe principale contient 38 méthodes et 34 propriétés.

Strong : parce qu'il ne se contente pas des fonctions de moteurs traditionnels.
Il offre en plus les fonctions évènementielles, les formats numériques et date, l'affichage multi-colonne, la lecture de bases de données....



Est-ce gratuit ?
Puis-je modifier le code source ?


TinyButStrong est totalement gratuit, il est distribué sous licence LGPL. C'est la licence la plus répandue pour les logiciels libres. Elle vous permet d'inclure TinyButStrong dans vos projets même commerciaux, et de faire des modifications pour corriger les bugs ou pour l'adapter à vos autres programmes par exemple.
Par contre vous ne pouvez pas vous approprier TinyButStrong. Pour une utilisation commerciale vous devez respecter la licence LGPL en signalant les modifications et en n'ajoutant pas de licence sur le module TinyButStrong, même modifié.



Pourquoi TinyButStrong supporte des bases de données ?


TinyButStrong sait lire séquentielle des données provenant de plusieurs types de bases de données.
Grâce à cela, TinyButStrong peut fusionner des données très simplement avec une seule instruction.

Exemple :   $TBS->MergeBlock('block1',$conn,'SELECT * FROM clients ORDER BY cli_id');
Cette instruction permet de fusionner le block nommé 'block1' avec le résultat de la requête SQL : 'SELECT * FROM clients ORDER BY cli_id', appliquée à la connexion $conn. La méthode MergeBlock() va ouvrir elle-même la requête et lire les données séquentiellement pour les fusionner un à un avec le bloc.

TinyButStrong ne sait rien faire de plus que lire les données séquentiellement, et il faut qu'une connexion sur la base de données soit déjà ouverte. C'est donc très simple et sécurisé. Vous pouvez même lui faire lire des données de bases de données spécifiques en programmant vos propres fonctions de lecture.
TinyButStrong ne remplace donc pas les outils de connectivité unifiée tels que EzSQL ou jlADOdb. Mais il peut être connecté à ces outils pour faire la fusion.



Quelles bases de données sont supportées ?


Toutes les bases de données peuvent être supportées par la fonction de fusion de TinyButStrong.
Certaines bases sont reconnues en natifs, les autres peuvent être reconnues grâces à un plug-in de base de données.
Les bases reconnues en natif sont : MySQL, SQLite, PostgreSQL et les tableaux PHP.



Pourquoi y-a-t-il un système de 'cache' ?


Il existe déjà plusieurs solutions de système de 'cache' en Php. Pourtant beaucoup d'utilisateurs souhaitent que le moteur de Template offre une solution de 'cache' intégrée. C'est chose faite avec TinyButStrong. Son système de 'cache' est simple et relativement souple. Il a été codé simplement et ne prend pas beaucoup de lignes de code dans le programme complet.



Peut-on 'compiler' les modèles ?


Certains moteurs de Templates offrent la possibilité de générer un script Php autonome à partir d'un modèle qui fonctionne. C'est ce qu'on appelle un 'modèle compilé'.
TinyButStrong n'est malheureusement pas capable de générer des modèles compilés pour l'instant.




Pourquoi le délimiteur par défaut sont [] au lieu de {}
?

Tous les autres moteurs de template proposent les délimiteurs {} pour la définition de leur balise spéciales.
Avec TinyButStrong, les délimiteurs par défaut sont []. Bien sûr vous pouvez les changer sans modifier le code source.
Mais pourquoi cette particularité ?
Les caractères { et } sont très utilisés dans les pages Html pour le code JavaScript et aussi la définition des styles CSS.
Alors que [ et ] sont très peu utilisés. En choisissant [], on améliore donc la rapidité des traitements de fusion car les balises spéciales au moteur de template sont localisées beaucoup rapidement.