Classe de construction de requête SQL

Une nouvelle classe qui permet de simplifier ou plutôt d’alléger la construction des requêtes SQL, avec deux bénéfices par rapport à l’ancienne façon :

  1. Plus besoin de se préoccuper de l’ordre des éléments dans la requête, le constructeur s’en occupe lorsque vous demandez la requête complète après avoir fourni les différents éléments via les méthodes.
  2. Plus besoin de se préoccuper de la mise en forme et de la syntaxe (dans la plupart des cas) au sein des éléments de la requête.

Exemple d’avant/après, ceci :

$strReq =
'SELECT post_id ' .
'FROM ' . $this->prefix . 'comment ' .
'WHERE comment_id' . $this->con->in($comments_ids) .
    'GROUP BY post_id';

$rs = $this->con->select($strReq);

Devient :

$sql = new dcSelectStatement($this->core);
$sql
    ->columns('post_id')
    ->from($this->prefix . 'comment')
    ->where('comment_id' . $sql->in($comments_ids))
    ->group('post_id');

$rs = $this->con->select($sql->statement());

Reste encore pas mal de boulot à faire pour l’intégrer dans Dotclear et au passage écrire les tests unitaires qui vont bien pour vérifier que ça ne casse rien !

La classe elle-même sera dans la 2.14, le reste, plus tard :-)

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/13825

Haut de page