Re: API Objet - Nouvelle fonction de lecture

RastaPopoulos <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
>     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.

Là si pour cause de pipeline, que tout soit toujours cohérent, il FAUT
passer par cette fonction d'API, alors il va falloir faire la sélection
de la liste des contenus avant, mais SEULEMENT leur "id", et ensuite
pour chacun d'entre eux, aller récupérer les infos complètes avec la
fonction d'API. Donc si t'as 1000 contenus, ça fait 1001 requêtes. Au
lieu d'une seule unique avec un select qui a tous les champs et
jointures voulus d'un coup.

Ça serait une grosse perte.

>     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).

Ça pour le coup je trouve que c'est un manque, car quand on est en PHP,
par exemple dans une action, et qu'on veut produire du CSV ou du JSON,
et bien si on veut profiter de toutes les jointures, cache,
optimisations fiscales, etc, il n'y a aucun autre moyen que de… faire
tout ça dans un squelette, qui va produire un JSON, et le décoder en
array() ensuite dans le PHP pour l'utiliser. On peut pas dire que ce
soit le plus pratique. :D

-- 
RastaPopoulos

_______________________________________________
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.