Dotclear

Ticket #760 (closed enhancement: wontfix)

Opened 15 years ago

Last modified 7 years ago

clearbricks et base de données

Reported by: biou Owned by: team
Priority: normal Milestone:
Component: module:core Version: 2.1
Severity: normal Keywords:
Cc:

Description

Salut les jeunes !

pour info, on utilise pas mal clearbricks dans ma boite, et on a développé un petit framework qui s'appelle clearfw, qui rajoute quelques fonctionnalités. Pour l'instant le framework n'est pas exceptionnel, mais il a le mérite pour nous d'exister et d'être très simple à maintenir.  http://code.google.com/p/clearfw/

Il me semble que certaines fonctionnalités que l'on a bien éprouvé pourraient être backportées dans clearbricks si cela vous intéresse.

Par exemple on a un singleton pour l'accès à la base de données, qui éviterait de se repasser un objet db partout. On a aussi à ce niveau une gestion des prepared statements (une émulation sur mysql pour l'instant, à voir ce qui pourrait être fait en natif), qui à mon avis est pas mal pour plusieurs raisons :

  • on a une syntaxe plus agréable dans le code que la concaténation de chaînes
  • on centralise en un seul point la protection contre les sql injections

Bien entendu notre émulation actuelle rajoute quelques traitements supplémentaires, mais dans nos tests ceci n'est pas vraiment pénalisant. L'émulation des prepared statements ne supporte que mysql pour l'instant mais je ne pense pas qu'il soit très difficile de porter ceci à d'autres bases de données.

En gros si vous êtes intéressés, faites-moi signe, je pourrai vous proposer un patch.

a+

biou

Change History

comment:1 Changed 15 years ago by olivier

 https://clearbricks.org/svn/branches/kamikaze/ Requêtes préparées, itérateurs à la place des $rs->fetch(). Une classe SQLStatement permettant de passer du raw sql dans un cursor.

Le singleton n'est pas supporté car on peut vouloir utiliser plusieurs connections DB.

comment:2 Changed 15 years ago by olivier

Edit: du coup le singleton, il est préférable de le coller ailleurs, genre dcCore::db()

comment:3 follow-up: ↓ 4 Changed 15 years ago by biou

ok cool ! je vais regarder cette branche kamikaze. Est-ce qu'il est prévu à terme de stabiliser cette branche et de l'utiliser dans dc2 ?

En effet le singleton peut exister sans forcément être utilisé ici. Je ne vois pas bien l'utilité d'avoir plusieurs connexions simultanées à la base, mais il doit y avoir un cas d'utilisation.

comment:4 in reply to: ↑ 3 Changed 15 years ago by olivier

Replying to biou:

ok cool ! je vais regarder cette branche kamikaze. Est-ce qu'il est prévu à terme de stabiliser cette branche et de l'utiliser dans dc2 ?

C'était l'idée mais elle n'a plus été synchro avec le trunk depuis un moment. Et il y a le gros problème de la transformation de while($rs->fetch()) en foreach($rs as $record) qui touche tout, plugins compris.

comment:5 Changed 14 years ago by xave

  • Milestone 2.2 deleted

comment:6 Changed 13 years ago by Tomtom33

Biou, comme tu viens rejouer avec nous, tu t'en occupe? ;)

comment:7 Changed 13 years ago by bruno

  • Priority changed from low to normal
  • Severity changed from minor to normal

comment:8 Changed 12 years ago by bruno

Implémenté dans la r302 de clearbricks, pour la partie foreach du moins...

comment:9 Changed 11 years ago by franck

  • Milestone set to A definir

comment:10 Changed 9 years ago by franck

  • Owner changed from olivier to team

comment:11 Changed 7 years ago by franck

  • Status changed from new to closed
  • Resolution set to wontfix
  • Milestone A definir deleted
Note: See TracTickets for help on using tickets.

Sites map