Si je demande à créer un nouveau champ 'une_Majuscule' (est-ce très licite déjà ?), les fonctions de SPIP que j'utilise créent bien le champ comme il faut.
Cependant, sql_showtable() transforme toutes les clés en minuscules pour créer le tableau 'field'.
Du coup mon script de Champs extras qui compare les clés gérées par SPIP (dans la table des tables) et les clés réelles existantes en bdd (via sql_showtable) pour déterminer quels champs il pourrait gérer se plante. Il indique qu'un champ «une_majuscule» est gérable (en plus d'indiquer qu'il gère «une_Majuscule»)
Bref : je peux corriger dans le plugin CE pour tester avec strtolower en plus sur les champs déclarés à SPIP, mais il me semble qu'on touche surtout une limite de sql_showtable() là non ? qui modifie le nom de la clé réelle créée en base ?
Cependant, sql_showtable() transforme toutes les clés en minuscules pour créer le tableau 'field'.
...
je peux corriger dans le plugin CE pour tester avec strtolower en plus sur les champs déclarés à SPIP, mais il me semble qu'on touche surtout une limite de sql_showtable() là non
Oui, j'avais fait ça à l'époque où je croyais que les serveurs SQL ne distinguait pas les casses.
On peut l'abandonner, sauf que sur le plan de la compatibilité, ça n'ira pas sans ... casse.
Tu as déjà changé la gestion de la casse des noms de tables je crois, ou des noms connecteurs (je ne sais plus)(et c'est vrai que ça pose quelques problèmes) ; c'est peut être l'occasion de faire pareil pour les champs dans sql_showtable()… D'autant que les fonctions de création de spip comme maj_tables() créent bien les bonnes casses.
Tu as déjà changé la gestion de la casse des noms de tables je crois, ou des
noms connecteurs (je ne sais plus)(et c'est vrai que ça pose quelques
problèmes) ; c'est peut être l'occasion de faire pareil pour les champs dans
sql_showtable()… D'autant que les fonctions de création de spip comme
maj_tables() créent bien les bonnes casses.
D'autres avis ?
Il faut être strict en écriture et souple en lecture. De ce point de
vue ce serait bien que les fonctions produisent la bonne casse ; mais
ce serait bien, aussi, que lorsqu'on cherche un champ, une table ou
une connexion, et qu'on ne la trouve pas avec la casse demandée, on la
cherche avec une autre casse.
Tu as déjà changé la gestion de la casse des noms de
tables je crois, ou des noms connecteurs (je ne sais
plus)(et c'est vrai que ça pose quelques problèmes) ;
c'est peut être l'occasion de faire pareil pour les champs
dans sql_showtable()… D'autant que les fonctions de
création de spip comme maj_tables() créent bien les bonnes
casses.
D'autres avis ?
pas vraiment un avis mais une remarque: pour les serveurs mysql sous windows (enfin... j'ai testé easyphp mais pas wamp), le serveur ne différencie pas la casse des noms des tables et bases: tout est traité comme étant en minuscule.
A priori ça ne posera pas de problèmes dans ce sens mais j'ai eu des surprises peu agréables en passant des sites sous linux...
Du coup la différentiation de la casse rentre dans une logique de nécessité de précision / anti-laxisme du code qui me semble souhaitable (?)