Re: API Objet - Nouvelle fonction de lecture
Eric Lupinacci <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <CAM6W4bameKm9V-eSx-E=PgDnTbhtGLhLjpZzTruWNMgmu8qU6Q@mail.gmail.com> |
Coucou, Le mer. 11 sept. 2019 à 11:41, Cerdic <[email protected]> a écrit : > Hello, > > moi je suis sceptique sur le fait d’introduire des données dans la lecture > via un/des pipelines, ce qui veut dire que de facto on a plus d’équivalence > entre un sql_select et l’utilisation de l’API de lecture. > > C'est une option que j'ai rajouté en me disant qu'il pourrait être intéressant de rajouter à un objet des informations attenantes appartenant à des objets liés (le terme lié est à définir c'est clair). Mais comme tu le dis, ça crée de facto une différence avec l'appel SQL seul ou la boucle simple ce qui pourrait aussi justifier la fonction d'un autre coté. Maintenant, si ça perturbe on peut clairement l'enlever. > La fonction peut avoir de l’intérêt en tant que shorthand, pour fluidifier > le code et/ou bénéficier du static (mais il faudrait voir si cela apporte > vraiment un gain de perf, car de son côté mysql cache aussi les requêtes, > c’est à dire que le même select va beaucoup plus vite la seconde fois), > mais si elle doit devenir un passage obligé pour la lecture des données > (pour cause de pipeline et d’injection externe de contenu hors SQL), ça va > être contreproductif : > > Oui c'était pour ça que j'avais rajouté un argument stockage oui ou non pour piloter les cas où on en avait besoin (par exemple dans un traitement ou l'on sait qu'on va relire n fois le même objet). Mais sur les conseils de Rasta j'ai transformé la fonction en stockant systématiquement et en permettant le forcage du recalcul de l'objet. > 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à. > 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. > > Je pense donc que la fonction ne doit pas permettre de > modifier/alterer/compléter ce qui vient de la base et n’être donc qu’un > simple raccourci de sql_xx pour qui veut s’en servir. > > Comme tu veux je peux l'enlever sans souci. ++ Eric