Categories > TinyButStrong general (FR) >

[fr] Tbs en objet ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: zimba
Date: 2004-05-01
Time: 17:58

[fr] Tbs en objet ?

Bijour le forum !

Je voulais juste savoir pourquoi Tbs n'a pas été codé entièrement en objet, qu'il reste des globales et des fonctions.

Pourquoi pas simplement tout faire avec des fonctions dans ce cas ?

Je me suis donc amusé à implémenter en plus des objets Tbs et TbsLocator, TbsCache, TbsData, TbsHtml, TbsMerge et TbsMisc.
Je suis pas sûr si ça marche vraiment mais pour l'instant ça en a l'air..
En faite toutes les fonctions sont appelées en static (ex: TbsMerge::Block(...) )
Je suis aussi en train de regarder si je peux virer les globales, pq ça me parait pas optimisé.
J'ai aussi fait un simple bench avec un loop à 10000, et on ne peut pas observer la différence.  Peut-être que avec beaucoup de blocks on la sentirait, puisque TbsLocator intègre aussi plein de fonctions.

Cheers,
zimba
By: Skrol29
Date: 2004-05-03
Time: 09:51

Re: [fr] Tbs en objet ?

Salut,

TBS peut tout a fait être codé en objet.
Mais voilà, après quelques test bench, j'ai constaté que si les méthodes sont codé en dehors de l'objet TBS elles sont plus rapides que si elles sont intégrées à l'objet.

Il est aussi possible de remonter les variables globales dans l'objet sous formes propriété. Mais cela doit être fait en même temps que la remonté des fonctions dans l'onbet, sinon on a un problème pour les atteindre.

Pour TBS 2, je suis en train d'étudier une version 100% objet, car j'ai déjà un peu amélioré les temps d'exécution.
By: zimba
Date: 2004-05-03
Time: 11:36

Re: [fr] Tbs en objet ?

Salut et merci pour ta réponse.

Au niveau des benchs, comme j'ai dit plus haut j'ai pas remarqué de différence sur un loop de 10'000 avec ma version custom.  Peut-être par contre qu'on peut observer des baisses de perfs sur beaucoup de blocks mais pour ça j'ai besoin d'un peu de temps ;)
De ton côté t'as utilisé quoi comme benchs ?

Sinon, est-ce qu'on peut contribuer d'une manière ou d'une autre au projet ?

Pour parler de l'utilité de l'objectisation : c'est quand on veut l'intégrer dans un framework existant qui lui-même est codé en objet, que ça devient utile.
On a pas accès aux variables locales. Donc effectivement on serait obligé de définir une nouvelle méthode ->set(... ) pour assigner les variables.
Est-ce que tu sais si on peut importer les variables dans un certain scope ?

Par exemple :
function ma_fonction() {
   $ma_var = 'importe-moi';
  
   $tbs = new clsTinyButStrong();
  
   // Remplacer cette ligne par qqch d'automatique
   // D'ailleurs ce truc n'est pas possible, puisque compact demande des params
   $tbs->set(compact(all));
}

Un des aspects des engines de template c'est qu'ils donnent un set d'outils préféfinis au designer, ce qui permet de sécuriser le site au niveau design.  On pourrait même proposer aux gens d'uploader leur propre design puisqu'ils ne peuvent rien faire d'autre que ce qui est prévu.
Avec Tbs, on est obligé de unset($my_var) si on ne veut pas laisser l'accès à $my_var.

Cheers,
zimba
By: Skrol29
Date: 2004-05-03
Time: 12:01

Re: [fr] Tbs en objet ?

Pour mes bench en objet, j'ai utilisé la fonction tbs_misc_timer() pour le chrono, et un exemple de fusion de bloc avec 1000 lignes provenant d'une source Array.
J'ai gardé les mêmes objets mais j'ai remonté toutes les fonction à l'intérieur de l'objet clsTinyButStrong ; en les adapatant un peu pour leurs appels.

Je comprend bien l'utilité de l'objetctisation, je suis d'accord c'est un truc qui manque à TBS. C'est aussi plus propre comme manière de coder.

Pour la limitation des variables global pour les designers, je trouve que c'est une très bonne idée. On peut effectivement faire comme tu propose avec un truc du genre :
  $TBS->AllowVar('var1,var2,var3');
Ou encore, autoriser un préfixe de variable.
Je vais réfléchir au truc. Toute suggestion bienvenues.

Pour la contribution, il y a déjà ertaines personnes qui m'aident ponctuèlement sur certains aspects (merci à eux). Ce qui manque le plus, c'est des tests de nouvelle version, et pour la v2, des confrontations d'idées de conception. Du genre "tout objet" ;)
By: Translator
Date: 2004-05-03
Time: 12:05

Re: [fr] Tbs en objet ?

This a small translation of the current thread.

Zimba is aksing why TBS is not 100% an object.

Skrol29 answers that some benches showed that the merging is faster when function are not coded as methods. But for TBS 2, there is a study to make TBS 100% object because saving time has be made.
By: zimba
Date: 2004-05-03
Time: 12:13

Re: [fr] Tbs en objet ?

Hmm nickel pour la confrontation :D

Donc si j'ai bien compris, t'as intégré toutes tes fonctions dans clsTinyButStrong.
Essaie de voir si tu ne peux pas découper Tbs en plusieurs parties (sans perdre trop de perfs).  L'avantage c'est que ça permet une implémentation personnalisée du programmeur.  Et pour garder le système simple, en 1 fichier, tu pourrais utiliser  tout au long du fichier :
if (!class_exists('clsTbsDBAccess')) {

  // Class d'abstraction DB
  class clsTbsDBAccess  {

  }

}
Bon là j'en ai profité pour montrer qu'on pourrait abstraire l'accès DB ;)

Est-ce que tu as un accès CVS qqe part ? Je suis assez tenté de voir Tbs2.0 et de bidouiller dessus :p


Cheers,
zimba
By: zimba
Date: 2004-05-03
Time: 12:15

Re: [fr] Tbs en objet ?

And the I said, Tbs can be subdivised into different objects.

This permits personnal implementation of some aspects of Tbs on the programmer side.

And..  I want the code !! :)