Programmation objet
• La grande avancée de PHP 5
• Tous les ajouts sont facultatifs
• Le code PHP 4 est compatible
• Sauf ...
La différence
function mod( $obj ) { $obj->test = ‘in’ ; }
$obj = new StdClass() ;
$obj->test = ‘out’ ;
mod( $obj ) ;
echo...
Code déjà compatible ?
• Passage par référence explicite en PHP 4
• On utilise & (attention à ne pas en oublier)
• Compati...
Code non compatible ?
• zend.ze1_compatibility_mode = true
• interdit d’utiliser les nouveautés PHP 5
• stabilité non gara...
Problème
• Il n’y a aucune erreur de syntaxe
• Le code semble fonctionner
• Parfois ça fonctionne, d’autres pas
• Il faut ...
Corriger le code ?
• En haut de script :
ini_set(‘zend.ze1_compatibility_mode’,‘1’);
• Dans chaque classe :
function __clo...
MySQL
• Officiellement remplacé par mysqli et pdo
• Non compatible builtin avec MySQL > 4.1
• Chercher :“mysql_connect”
MySQL : solution
• Créer un utilisateur “spécifique PHP 4”
• Utiliser l’ancien système de mot de passe
• old_password() dan...
XML
• domxml et domxslt ont disparu
• remplacé par dom et xsl
• chercher “domxml” et “domdocument”
• Script d’émulation :
...
La Migration
• Lire la documentation officielle, les livres
• Préparer un jeu de test exhaustif
• Choisir entre
• activer l...
Migration : avant
• Faire un code PHP 4 compatible
• pear::compat, dbal, mise à jour des libs
• Préparer les dev PHP 5
• g...
Migration : pendant
• Aucune solution parfaite :-(
• Préparer
• Faire des tests
• Corriger
• Faire des tests
• Corriger
• ...
Migration : après
• Régler les niveaux d’erreur (E_STRICT)
• Récupérer l’ancienne configuration php.ini
• Attention aux don...
Upcoming SlideShare
Loading in...5
×

Migrations PHP 5 - Solutions linux 2009

543

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
543
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Migrations PHP 5 - Solutions linux 2009

  1. 1. Programmation objet • La grande avancée de PHP 5 • Tous les ajouts sont facultatifs • Le code PHP 4 est compatible • Sauf .... le passage par copie des objets
  2. 2. La différence function mod( $obj ) { $obj->test = ‘in’ ; } $obj = new StdClass() ; $obj->test = ‘out’ ; mod( $obj ) ; echo $obj->test ; // in ou out ?
  3. 3. Code déjà compatible ? • Passage par référence explicite en PHP 4 • On utilise & (attention à ne pas en oublier) • Compatible PHP 5 sans modification • mais désactivation des erreurs strictes
  4. 4. Code non compatible ? • zend.ze1_compatibility_mode = true • interdit d’utiliser les nouveautés PHP 5 • stabilité non garantie • Sinon : corriger votre code • long, complexe, sans garantie de résultat
  5. 5. Problème • Il n’y a aucune erreur de syntaxe • Le code semble fonctionner • Parfois ça fonctionne, d’autres pas • Il faut comprendre le code pour le corriger • Demande des tests exhaustifs
  6. 6. Corriger le code ? • En haut de script : ini_set(‘zend.ze1_compatibility_mode’,‘1’); • Dans chaque classe : function __clone() { ...debug_backtrace()... } • Vérification ligne à ligne des résultats • remplacer si nécessaire par “clone”
  7. 7. MySQL • Officiellement remplacé par mysqli et pdo • Non compatible builtin avec MySQL > 4.1 • Chercher :“mysql_connect”
  8. 8. MySQL : solution • Créer un utilisateur “spécifique PHP 4” • Utiliser l’ancien système de mot de passe • old_password() dans mysql à la création • Mixer avec pdo/mysqli ? • demande + de ressources (deux liens)
  9. 9. XML • domxml et domxslt ont disparu • remplacé par dom et xsl • chercher “domxml” et “domdocument” • Script d’émulation : http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
  10. 10. La Migration • Lire la documentation officielle, les livres • Préparer un jeu de test exhaustif • Choisir entre • activer le mode de compatibilité • passer réellement en php 5
  11. 11. Migration : avant • Faire un code PHP 4 compatible • pear::compat, dbal, mise à jour des libs • Préparer les dev PHP 5 • garder une norme de codage PHP 4 (minuscules, extension mysql, etc.)
  12. 12. Migration : pendant • Aucune solution parfaite :-( • Préparer • Faire des tests • Corriger • Faire des tests • Corriger • Faire des tests ...
  13. 13. Migration : après • Régler les niveaux d’erreur (E_STRICT) • Récupérer l’ancienne configuration php.ini • Attention aux données partagées • utilisateurs mysql (old_password) • données sérialisées • bibliothèques de code
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×