AccueilBlog PHPBlog privéBlog en vracLiensPhotos
Blogs
Lolo Irie

Favoris
Certification Engineer Zend
Amélioration de ce blog...
Une application PHP Stand-alone
Lutter contre le SPAM sur un site Web
Lutter contre le SPAM sur un site Web (2)
ImageMagick sur Windows
Bienvenue
Nom d'utilisateur:

Mot de passe:


Retenir l'identification

[ S'inscrire ]
[ Mot de passe oublié? ]
Migration PHP4 vers PHP5...
oui bien sûr, mais comment ?



Comme vous le savez peut être (News sur le site officiel de PHP) il a été officiellement annoncé la fin du développement de la version 4 de PHP, la plus utilisée aujourd'hui, au profit de sa grande soeur la version 5.
Cette dernière propose de nombreuses améliorations qui ont été déjà décrites sur moult sites, une recherche sur le Web vous renseignera immédiatement.

Les questions que vous vous posez donc sont probablement:

Dois je entreprendre immédiatement la migration de mon application actuelle vers PHP5 ?
Dois je plutot la recoder intégralement ?
Dois je plutôt la conserver sous PHP4 ?
Quelle sera l'étape suivante ? PHP6 ?..


Voici un tutorial qui devrait répondre à ces questions...
Attention, il n'est pas question ici d'une migration de MySQL, mais uniquement de PHP !!!



Découvrir PHP5

PHP5 n'est plus vraiment nouveau (PHP6 est déjà en route), mais encore méconnu (au moins des développeurs PHP peu avertis).

Dans un premier temps, il vous faut déterminer les raisons, les apports et les contraintes d'un changement de version de PHP.
Meme si finalement votre application restera sous PHP4, fort à parier que vous aurez très prochainement à travailler avec la version 5 sur d'autres projets...

Tout d'abord et sans perdre de temps, consultez donc la documentation officielle de PHP, car c'est là que vous trouverez les informations essentielles.
Préférez le documentation officielle en ligne, où figureront toujours plus de commentaires pertinents.

Le chapitre suivant est à lire ABSOLUMENT:
Annexe D. Migration de PHP 4 à PHP 5
et notamment le sous-chapitre
Incompatibilités avec les version antérieures
De même la FAQ de la documentation de PHP peut vous apporter encore quelques réponses:
FAQ migration

De plus les sites suivants (en anglais) completeront parfaitement vos connaissances.
GO PHP5 (Site pour la promotion de la version 5 de PHP)
Page de liens vers des infos relatives spécifiquement aux nouveautés de la version 5

Vous trouverez sur ces pages la réponse à plus de 95% des erreurs ou notices que vous pourriez rencontrer lorsque vous testerez votre application avec PHP5 la première fois.
Pensez donc à inclure ces pages dans vos favoris.



PHP5, une necessité ?

Ensuite, il vous faut réfléchir sur la nécessité ou le devoir de la migration...
Si votre application n'est pas trop grosse et que vous disposez des ressources suffisantes, alors recodez là de 0, vous aurez tout à y gagner d'utiliser la puissance de PHP5 et votre expérience de codeurs.
Mais dans bien des cas, cela reste une utopie, car le temps ou l'argent manque...

- Si votre site ou votre application est hébergée sur un serveur dont vous n'êtes pas administrateur et où se trouvent peut être d'autres applications Web (serveur mutualisé par exemple), alors fort à parier que le serveur tôt ou tard passera à PHP5.
Mieux vaut donc dès à présent réfléchir comment vous allez devoir faire évoluer votre application.

- Si votre application est sur un serveur dont vous avez la charge et où ne se trouvent aucune autre application en PHP, alors la question nécessite reflexion

Premier cas de figure, votre application est en Intranet et pour diverses raisons, une version pour PHP5 serait fort couteuse.
De plus l'application n'est pas amenée à évoluer considérablement... alors dans ce cas, le maintien de PHP4 peut être le meilleur choix.

Mais comme vous le voyez, les contraintes sont ici fort importantes, voire extremes.

Dans presque tous les autres cas, une version pour PHP5 sera souhaitable.
Vous devrez alors agir au plus vite, car PHP5 pourrait bien intervenir plus tôt que vous ne le pensiez...

Mais voilà, que faire ?
Faire évoluer l'application ou la recoder de toute pièce ?..




Migrer vers PHP5 !

Avant de prendre une décision forcément coûteuse, prenez donc le temps d'étudier soigneusement le problème en vous penchant sur votre application.

Si possible, je vous recommande tout d'abord d'installer votre application PHP4 sur un serveur tournant sur PHP5 avec une configuration par défaut, avec néanmoins une remarque d'importance:
Assurez vous d'avoir les lignes suivantes dans votre fichier php.ini avec les valeurs indiquées. Si besoin éditer le fichier et redémarrez PHP.

error_reporting = E_ALL & E_STRICT
display_errors = On
display_startup_errors = On
log_errors = On
log_errors_max_len = 1024
ignore_repeated_erro rs = Off
ignore_repeated_sourc e = Off
report_memleaks = On
track_errors = Off

error_reporting définit le type d'erreurs et notices à afficher.
display_errors permet d'afficher les erreurs et notices à l'écran, pour votre usage donc.
display_startup_errors affichera les erreurs rencontrées lorsque vous redémarrez PHP.
log_errors permet de stocker toutes les erreurs et notices dans un fichier sur le serveur.
log_errors_max_len peut éventuellement durant la phase des tests de migration être augmentée pour stocket toutes les erreurs, notamment si d'autres utilisateurs testent votre application.
ignore_repeated_errors permet de cerner la fréquence des erreurs et notices, puisque les mêmes erreurs sont affichées à chaque fois qu'elles interviennent.
ignore_repeated_source permet d'afficher les erreurs identiques survenues à différents endroits de votre application.
report_memleaks pour afficher les fuites de mémoires éventuelles (sous réserve que PHP soit compilé avec l'option de débugage)
track_errors permet de conserver le dernier message dans la variable $php_errormsg.

Ne soyez pas effrayé par le nombre de notices affichées, la majorité d'entre elles sont vraisemblablement facilement et rapidement corrigibles avec les connaissances acquises sur PHP5 à l'aide des quelques liens plus haut dans l'article.


Trois conséquences possibles de ces premiers tests:

- Votre application semble tourner, et le nombre de notices ou erreurs fatales est minime.
C'est déjà très bon signe
Le choix devrait être facile (attention toutefois de ne pas oublier tester un point critique), vous allez convertir votre application pour PHP5.
Il s'agira de fixer quelques notices nouvelles ou existantes et de corriger tout ce qui peut l'être en fonction des coûts et temps alloués, pour utiliser le meilleur de PHP5 pour optimiser votre application.

- Votre application ne marche que partiellement et le nombre de messages d'erreurs ou notices est important.
C'est la conséquence la moins souhaitable, car le choix sera beaucoup plus délicat, et sans connaître votre application, je ne merisquerais pas à vous pronostiquer le meilleur choix.
Vérifiez toutefois que de passer la valeur de zend.ze1_compatibility_mo de à Off (si elle était à On) ne résout pas le problème.
Ce paramètre permet de prendre en compte le modèle objet de PHP4 avec PHP5.
Toutefois, il serait preferable que ce paramêtre reste à Off, car il risque de disparaître sous PHP6 ou ultérieurement...

- Votre application après 2 jours acharnés (ou plus selon vos connaissances en PHP et du code de votre application) refuse radicalement de fonctionner sous PHP5...
A moins que votre application ne soit un monstre, avec des lignes de codes et des fichiers sans fin...
Encore une fois, vous gagnerez sur toute la ligne en la recodant proprement sous PHP5.



Selon vos méthodes et moyens de travail, il vous faut dès à présent vous pencher sur cette tâche qui assurera la pérennité de votre application...
au moins jusqu'à PHP7... si vous vous tenez informé des modifications possibles de PHP6 sur certaines variables de configuration de php.ini.




L'avenir de PHP...

Alors que PHP5 voyait le jour, presque immédiatement le projet PHP6 fut lancé.
Non pas que PHP5 s'annonçait alors décevant, mais bien parce que PHP6 allait apporter au moins un facteur décisif et difficilement gerable dans PHP5: le support parfait Unicode que tout le monde attend.
Bien sûr d'autres points sont aussi abordés pour PHP6, mais qui ne devraient toutefois pas procéder à une révolution telle que le passage de PHP4 à PHP5.

Pour en savoir plus sur PHP6, une petite recherche sur Google vous conduira surement chez Cyril Pierre de Geyer:
Nouveautés PHP6, prévisions
Nouveautés déjà implémentées


N'hésitez surtout pas à commenter cette news...

mardi 11 septembre 2007 - 20:16:55
Ecrire un commentaire
Seuls les membres connectés peuvent soumettre des commentaires.
Ce site est basé sur le système e107 et utilise le thème graphique Deep Blue (légèrement modifié)

Le contenu appartient aux blogueurs respectifs du site mais peut être réutilisé, si vous nommez la source.