Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

Migrations PHP 5 - Solutions linux 2009

on

  • 688 views

 

Statistics

Views

Total Views
688
Views on SlideShare
683
Embed Views
5

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 5

http://lanyrd.com 4
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Migrations PHP 5 - Solutions linux 2009 Presentation Transcript

  • 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. La différence function mod( $obj ) { $obj->test = ‘in’ ; } $obj = new StdClass() ; $obj->test = ‘out’ ; mod( $obj ) ; echo $obj->test ; // in ou out ?
  • 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. 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. 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. 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. MySQL • Officiellement remplacé par mysqli et pdo • Non compatible builtin avec MySQL > 4.1 • Chercher : “mysql_connect”
  • 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. 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. 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. 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. Migration : pendant • Aucune solution parfaite :-( • Préparer • Faire des tests • Corriger • Faire des tests • Corriger • Faire des tests ...
  • 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