Une petite question de programmation, à propos de l’usage des appels chaînés (utilisés depuis longtemps dans Dotclear, en particulier pour la description de la structure de la base de données).
Vous préférez, question facilité de lecture et de compréhension, ceci :
$_s->blog
->blog_id('varchar', 32, false)
->blog_uid('varchar', 32, false)
->blog_creadt('timestamp', 0, false, 'now()')
->blog_upddt('timestamp', 0, false, 'now()')
->blog_url('varchar', 255, false)
->blog_name('varchar', 255, false)
->blog_desc('text', 0, true)
->blog_status('smallint', 0, false, 1)
->primary('pk_blog', 'blog_id')
;
Ou cela :
$_s->blog->blog_id('varchar', 32, false);
$_s->blog->blog_uid('varchar', 32, false);
$_s->blog->blog_creadt('timestamp', 0, false, 'now()');
$_s->blog->blog_upddt('timestamp', 0, false, 'now()');
$_s->blog->blog_url('varchar', 255, false);
$_s->blog->blog_name('varchar', 255, false);
$_s->blog->blog_desc('text', 0, true);
$_s->blog->blog_status('smallint', 0, false, 1);
$_s->blog->primary('pk_blog', 'blog_id');
Autre exemple, ceci :
$sql = new dcSelectStatement($this->core);
$sql
->distinct()
->columns([
$sql->dateFormat('post_dt', $dt_f) . ' AS dt',
$sql->count('P.post_id', 'nb_post'),
])
->from($this->prefix . 'post P')
->join(
(new dcJoinStatement($this->core))
->type('LEFT')
->from($this->prefix . 'category C')
->on('P.cat_id = C.cat_id')
->statement()
)
->where('P.blog_id = ' . $sql->quote($this->id))
->group('dt');
Ou cela :
$sql = new dcSelectStatement($this->core);
$sql->distinct();
$sql->columns([
$sql->dateFormat('post_dt', $dt_f) . ' AS dt',
$sql->count('P.post_id', 'nb_post'),
]);
$sql->from($this->prefix . 'post P');
$sqlJoin = new dcJoinStatement($this->core);
$sqlJoin->type('LEFT');
$sqlJoin->from($this->prefix . 'category C');
$sqlJoin->on('P.cat_id = C.cat_id');
$sql->join($sqlJoin->statement());
$sql->where('P.blog_id = ' . $sql->quote($this->id));
$sql->group('dt');
1 De Jean-Christian Paul Denis -
Je peux participer au sondage ? 🙃
De toute façon je vais donner mon avis. Je préfère le chainage tel qu’il est aujourd’hui dans le code de Dotclear, c’est vachement plus light. Mais j’utilise la version lourdingue depuis que je suis des liens proposés par biou 😅
Et pour alléger un poil tu peux écrire:
2 De Franck -
Bien sûr que tu peux participer voyons :-)
Sinon je suis assez partagé entre les deux formes, fluent interface ou pas, vu qu’elles ont chacune leurs avantages et inconvénients.
Cela dit mon côté feignasse préfère largement la forme « légère » (chaînée donc).