2008-08-09 10 views
9

Quelles sont les bonnes étapes à suivre pour une migration en douceur de PHP4 vers PHP5. Quels sont les types de code susceptibles de casser?Migration de PHP4 vers PHP5

Répondre

8

J'ai aussi travaillé une fois sur une application qui utilisait beaucoup le support XML de PHP4, et qui aurait nécessité un peu de travail pour passer à PHP5.

L'un des autres changements importants que je regardais à ce moment était le changement de la gestion par défaut des paramètres de fonction. En PHP4 si je me souviens bien, ils ont été copiés à moins que vous ne spécifiiez le contraire, mais en PHP5 est changé en pass-by-reference par défaut. Dans un code bien écrit, cela ne fera probablement pas une grande différence pour vous, mais cela pourrait certainement causer des problèmes.

Je pense qu'une autre chose que j'ai trouvée modifiée est que les objets ne sont plus autorisés à écraser leur champ 'this'. Je dirais que c'était une très mauvaise idée pour commencer (et je pense que cela n'a peut-être pas été une fonctionnalité intentionnelle dans PHP4), mais j'ai certainement trouvé quelques parties de notre système qui comptaient dessus.

Espérons que cela aide.

+0

Je viens de remarquer ce post en haut des résultats de recherche Google lorsque j'ai cherché PHP4 vs PHP5 en passant des arguments au comportement de la fonction. [le manuel de php] (http://php.net/manual/en/functions.arguments.php) indique le contraire; Le passage par valeur (pass-by-copy) est _still_ la valeur par défaut. –

1

Nous avions une application qui puisait largement dans les fonctions DOM XML PHP 4 et il a fallu beaucoup de réoutillage changer sur PHP 5.

Au-delà la plupart des changements ont été des améliorations à des choses comme la gestion des erreurs (pour tirer profit d'exceptions) et PHP Classes.

2

Le meilleur conseil que je pourrais donner toute personne qui travaille avec PHP4 est le suivant:

error_reporting(E_ALL); 

Il à peu près vous dira exactement ce que vous devez faire.

+0

Avant ou après la migration? –

1

La POO est l'une des plus grandes différences. Il ne cassera pas car les styles OOP PHP4 et PHP5 sont interchangeables mais je recommanderais de profiter des nouveaux styles OOP de PHP5. Ce n'est pas une énorme quantité de travail pour convertir vos classes existantes en PHP5 et cela vous donne quelques méthodes magiques supplémentaires qui peuvent aider à résoudre certains hacks existants (je me souviens d'avoir une méthode __toString équivalente presque inutile dans la plupart des classes).