Anomalie #1299
closedIncompatibilité avec zend-db > 2.9.2
100%
Description
Suite à une mise à jour, je constate que Galette n'est pas compatible avec des versions plus récentes de zend-db que celle qui distribuée avec (2.9.2). Ceci se manifeste au moins à deux endroits.
L'ajout de nouvelles valeur par défaut de préférence échoue systématiquement, ce qui se traduit dans les logs par des messages du type, que l'on retrouve pour chaque requête:Unable to add missing preferences.Statement could not be executed (HY093 - - )
Ensuite, la modification de champs dynamiques échoue également, avec un message d'erreur de ce type:An error occurred storing dynamic field. Form name: adh | Error was: Statement could not be executed (HY093 - - )
Ces deux problèmes disparaissent lorsque zend-db est retrogradé à la version 2.9.2. Ils réapparaissent dès le passage aux versions 2.9.3 ou 2.10.0.
Le premier problème correspond à un échec systématique de l'appel à $stmt->execute(), à la ligne 219 de Galette\Core\Preferences, sans que les logs de mariadb ne montrent trace d'une quelconque requêtes INSERT. En examinant le changelog de zend-db 2.9.3, ce changement de la gestion des paramètres semble le coupable idéal: https://github.com/zendframework/zend-db/pull/304
Updated by Johan Cwiklinski over 5 years ago
- Priority changed from Normal to Bas
Il ne s'agit pas vraiment d'un bug ; il est impossible de savoir quels changements incompatibles les bibliothèques tierces vont implémenter. Ce sera à prendre en compte lors d'une future mise à jour des bibliothèqes.
Updated by Guillaume Rousse over 5 years ago
Et en cherchant à résoudre le problème moi-même, je suis tombé sur:
https://github.com/zendframework/zend-db/issues/322
Bref, a part surenchérir sur le sujet, je vois mal quoi faire :/
Updated by Johan Cwiklinski almost 5 years ago
- Status changed from Nouveau to In Progress
Je pense avoir trouvé ce qui cloche (testé dans les préférences pour le moment, mais je suppose que c'est valable partout).
J'ai relancé le ticket Laminas (https://github.com/laminas/laminas-db/issues/47#issuecomment-625024194).
Updated by Johan Cwiklinski almost 5 years ago
J'ai commencé à contourner le problème, mais ça revient à utiliser des paramètres positionnés partout, ou à utiliser leurs alias +/- prévisibles... Je ne sais pas trop quoi faire : dans un cas comme dans l'autre, c'est plein de modifications à pas mal d'endroits pour... pas grand chose :/
Voir https://github.com/galette/galette/compare/feature/upatelibs
Updated by Johan Cwiklinski over 4 years ago
PR proposée : https://github.com/laminas/laminas-db/pull/160 - en attente de retours.
Je commence à désespérer d'avoir une réponse.
Updated by Johan Cwiklinski over 4 years ago
- Blocks Evolution #1492: PHP 8 compatibility added
Updated by Johan Cwiklinski over 4 years ago
- Category set to Core
- Assignee set to Johan Cwiklinski
- Target version set to 0.9.5
Toujours pas de nouvelles côté upstream, malgré mes relances.
Je vais donc intégrer un patch dans Galette directement ; mais les modifications de la PR d'origine sont trop importantes pour que ce soit maintenable à terme.
J'ai bossé sur une version simplifiée qui devrait convenir à Galette, et être relativement aisée à maintenir au besoin.
Je laisse le soin au projet Laminas de corriger leurs bogues ; je ne souhaite pas renouveler l'expérience d'une contribution à leur endroit, ni même mener à terme ce qui a été débuté.
Updated by Johan Cwiklinski over 4 years ago
- Status changed from In Progress to Résolu
- % Done changed from 0 to 100
Appliqué par commit 039d7c608766d42461b0bb5705421e6a5f75b1c6.
Updated by Johan Cwiklinski over 4 years ago
- Status changed from Résolu to Fermé