Bientôt les vacances \o/
Après avoir joué avec les web-workers, je crois que j’aimerais assez voir un peu ce que permettent les service-workers, juste histoire de rigoler :-)
Ça a un lien avec la première phrase : imaginez que vous êtes dans le train, sans connection ou avec une connection en pointillée, et que vous vouliez absolument commencer à rédiger le billet du siècle, en sauvegardant régulièrement — ce qui serait impossible sans connection à votre hébergement —, etc… Voyez l’idée ?
Sinon, plus j’avance sur la petite classe d’abstraction qui permet de construire des requêtes SQL, pour l’instant limité au SELECT, je me dis que, d’une part, ça serait rudement utile d’avoir des tests unitaires complets avant — mais c’est un poil trop tard, ou plutôt j’ai la flemme de coder ça aujourd’hui —, et que, d’autre part, cette classe finira (peut-être) par couvrir tous les cas où on construit des requêtes, histoire d’uniformiser le code. Y’a encore du boulot…
Si je reprends l’exemple d’hier, voilà l’état de cette fonction ce matin :
private function getCategoriesCounter($params = array())
{
$sql = new dcSelectStatement($this->core);
$sql->columns(array('C.cat_id', 'COUNT(P.post_id) AS nb_post'))
->from($this->prefix . 'category AS C')
->join('JOIN ' . $this->prefix . 'post P ' .
'ON (C.cat_id = P.cat_id AND P.blog_id = ' . $sql->quote($this->id) . ')')
->where('C.blog_id = ' . $sql->quote($this->id));
if (!$this->core->auth->userID()) {
$sql->where('P.post_status = 1');
}
if (!empty($params['post_type'])) {
$sql->where('P.post_type ' . $sql->in($params['post_type']));
}
$sql->group('C.cat_id');
$rs = $this->con->select($sql->statement());
$counters = array();
while ($rs->fetch()) {
$counters[$rs->cat_id] = $rs->nb_post;
}
return $counters;
}
Tiens, il pleut, encore…