Re,

Le jeu. 12 sept. 2019 à 16:44, RastaPopoulos <rastapopou...@spip.org> a
écrit :

>
> >     on va se retrouver à faire des gros SQL select avec des conditions
> >     compliquées en SQL pour récupérer les id, puis à appeler la fonction
> >     de lecture pour chaque id, et ça va ramer très fort à la fin.
> >
> >
> > Je pige pas là.
>
> Bé quand tu travailles pas juste sur UN unique contenu, tu fais un
> select de plein de champs d'un coup (et des jointures éventuelles), et
> tu récupères tout en une seule requête.
>
>
Oui ok, pigé.
En fait, cet API est à usage simple.
Si l'usage qu'on a est plus sophistiqué il faut revenir à l'écriture SQL
plus optimisée, je suis d'accord.
Je me disais que statistiquement on devrait avoir pas mal de cas simples
qui gagnerait à être factorisés avec cette fonction, c'est plutôt ça mon
approche.



> >     De plus, cela veut dire aussi qu’on récupérerait via l’api de
> >     lecture des données qui ne correspondent pas à celles qu’on a avec
> >     une boucle.
>
> Moi c'est ce point qui me turlupine le plus je crois.
>
> En fait l'intérêt d'une fonction de lecture en PHP, je la vois surtout
> si on finit par avoir une réelle cohérence entre récupération en boucle
> dans les squelettes et récupération en PHP par une API. Donc avec TOUTES
> les optimisations de performance que ça fait pour les boucles, et toutes
> les jointures automatiques ajoutées, etc, etc. Et cela pas juste pour un
> unique contenu, mais bien pour une liste aussi (comme les boucles).
>
>
Oui c'est vrai.
D'ailleurs c'est assez marrant car je me suis décidé à proposer cette
fonction après avoir créer récemment dans SVP la fonction plugin_lire() qui
ne peut pas être remplacée elle par ma proposition objet_lire() car pour un
plugin il faut une jointure avec la table spip_depots pour exclure les
plugins installés (si on cherche par le préfixe).
Or dans une boucle ce critère est automatique.
Donc oui c'est exact ça ne résout pas ce souci.

Bon après, je peux faire une PR de la fonction modifiée avec tes remarques
précédentes et sans pipeline et on voit ce qu'on en fait.

++
Eric
_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip

Répondre à