Salut,
Il faudrait quelque chose pour qu'un développeur de
plugin puisse spécifier la version PHP mini ainsi que, le cas échéant,
les versions compatibles de SGBD, du genre :
"ce plugin fonctionne pour MySQL 5.0 et + mais aussi pour pgSQL 7 et +
mais pas pour sqlite"
"ce plugin fonctionne pour PHP 5.2 et + ou PHP 4.0.6 et plus"
etc.
on vérifie déjà la version PHP pour SPIP, donc, les fonctions sont
déjà là quelques part.
Un plugin (et même SPIP en fait) devrait optionnellement
préciser son intervalle de compatibilité PHP et optionnellement aussi
(parce que parfois un plugin ne s'appuie pas sur du SQL) pour chacun
des SGBDr que SPIP gère.
Faut peut-être aussi trouver une astuce pour dire : ne marche pas avec
tel SGBDr : par exemple, le cas d'un plugin conçu explicitement pour MySQL ne
doit pas s'installer sur un SPIP qui tourne en SQLite ...
SQLite : SELECT sqlite_version() AS version
http://www.sqlite.org/lang_corefunc.html#sqlite_version
MySQL : SELECT version() AS version (ou SELECT current_version() AS version)
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_version
PostGRESL : SELECT version() AS version
l'info renvoyée commence par un série, comme PHP, de type "x.y.z" et
parfois est suivie d'un tiret puis un texte.
pour pgsql, j'ai pas trop de moyen de vérifier mais il y a peut-être un soucis : la version pgsql ne serait que sur deux digit (x.y) : il faudrait permettre cette
souplesse à la saisie dans les xml et ajouter avant comparaison un
".0" final
Donc, on a les même moyens de comparaison que pour les plugins, SPIP, etc...
Pour la question du cache de cette info, je ne sais pas. Pour PHP
c'est inutile. Pour les BDD, est-ce que c'est lourd de faire la vérif
une fois à chaque fois qu'on va tester l'installation ou l'activation d'un plugin ? voire son affichage dans une liste distante ?
Enfin, peut-être que l'information sur le SGBD peut être généralisé à l'ensemble des "bases" pouvant être interrogée (via les intégrateurs ?). Je dis bien peut-être, je ne sais pas si c'est utile.
Par exemple, j'ai cherché pour LDAP, mais j'ai rien, et je ne crois pas qu'il y ait à ce jour beaucoup de plugin s'appuyant sur LDAP...
Voilà, des avis ?