En vue d'une migration sous PHP 6

WRInaute accro
Bonjour

J'ai réussi apparemment, à migrer mon site partenaire sur mon ordinateur, vers PHP6, à part qu'il est programmé entièrement, base de données comprise, en mode ISO-8859-1.

J'ai également migré mon propre site ( voir profil ).

Les deux sites fonctionnent sans warning en mode de reporting d'erreur ( E_ALL | E_STRICT ).

Je n'ai pas encore php6 sur mon ordinateur, seulement php 5.2.12. Egalement, mon hébergeur Sivit et le serveur de mon site partenaire, sont sous php 5.2.12.

Je n'ai donc pas encore la possibilité, grâce à la constante E_DEPRECATED , de savoir s'il reste des fonctions obsolètes à migrer.

Actuellement, j'ai migré les fonctions type ereg vers les fonctions type pcre, et adapté les accès à MySQL, vers l'interface objet PDO.

Or, PHP6 est par défaut en mode UTF-8 ( ou UTF-16 je ne sais pas ), mais il semble qu'il y ait la possibilité de garder à la fois l'interprétation des scripts en mode iso, les transferts de données et lecture/écriture de fichiers en mode iso, et la bdd en mode iso.

Pour ce faire, j'ai identifié ces instructions dans le PHP Manual, avantageusement transposables dans un fichier .htaccess positionné à la racine du site :

ini_set(unicode.filesystem_encoding, "ISO-8859-1");

... et ainsi de suite pour ces codages :

unicode.output_encoding
unicode.script_encoding
unicode.stream_encoding
unicode.fallback_encoding

avec, éventuellement :

unicode.http_input_encoding


Donc, sous .htaccess, l'équivalent serait :

# .htaccess
php_value unicode.filesystem_encoding "ISO-8859-1"

...etc...


Ma question est : Est-ce que c'est suffisant de positionner tout, ou partie de ces instructions dans le .htaccess, pour que le site soit full compatible iso, y compris la base de données ( les tables MySQL sont toutes en mode iso ), ou bien dois-je mettre autre chose ?

Merci beaucoup de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Tu est au courant que PHP6 n'est même pas encore en beta et que son utilisation en dehors d'un environnement de développement est plus que déconseillée ?
 
WRInaute accro
dmathieu a dit:
Tu est au courant que PHP6 n'est même pas encore en beta et que son utilisation en dehors d'un environnement de développement est plus que déconseillée ?


Merci beaucoup de ta réponse.

Bien sûr que je le sais... ;)

Disons, php 6 n'est plus en mode bêta, mais il y a des versions php 6 fonctionnelles dès maintenant, sans que ce ne soient des versions release.

Seulement, je prévois d'avance, et l'effort de migration étant conséquent, j'ai voulu faire en sorte que le "grand effort" soit au passé. ;)

Ma question reste posée.

Compte tenu du fait que ce problème de compatibilité iso ( ou de spécificité utf-8 de php 6 ) est indiqué dans le PHP Manual, j'ai intérêt à savoir dès maintenant, dans quelles conditions mon site et mon site partenaire, seront compatibles php 6.

Donc... Ma question reste posée.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute passionné
Sinon tu peux passer en PHP 5.3 déjà (les fonction plus dispo dans PHP6 sont déprécié dans PHP 5.3).
Mais sinon utiliser PHP6 dès maintenant c'est pas trop conseillé.

Mais pour l'encodage je ne sais pas mais ta solution me semble pas mal déjà.
 
WRInaute accro
Bacteries a dit:
Sinon tu peux passer en PHP 5.3 déjà (les fonction plus dispo dans PHP6 sont déprécié dans PHP 5.3).
Mais sinon utiliser PHP6 dès maintenant c'est pas trop conseillé.

Mais pour l'encodage je ne sais pas mais ta solution me semble pas mal déjà.


Bonjour Monsieur ;)

J'ai demandé au monsieur qui gère le serveur de mon site partenaire ( sous gentoo ), il m'a dit qu'actuellement, la version PHP 5.3 était en mode tel, qu'il était déconseillé de l'installer en production.

Pour ma part, j'attends que mon ordinateur soit automatiquement upgradé vers la version PHP 5.3, et en mettant le reporting d'erreur à : ( E_ALL | E_STRICT | E_DEPRECATED ), je verrai tout de suite les fonctions obsolètes restant à migrer.

Cependant, en ce qui concerne le problème du fait que mon site partenaire est en mode full iso ( y compris la base de données MySQL 5.0.32 pour l'instant ), j'ai quand même besoin de savoir quels sont les paramètres unicode.* que je dois positionner à : ISO-8859-1.

En particulier, le rôle des paramètres unicode.* , n'est pas clairement indiqué dans le PHP Manual, aussi j'aurais besoin que l'on m'indique quels paramètres affecter en iso, et si j'ai besoin de faire une autre manipulation avec la base de données, pour qu'elle fonctionne bien en mode ISO-8859-1, alors qu'il me semble que l'interface objet PDO, dépendant de PHP 6, traite la base de données également en mode UTF-8.

Merci beaucoup beaucoup à vous de vos réponses.

Bien à vous.

Amicalement.

Jean-François Ortolo
 
Discussions similaires
Haut