2008-08-09 26 views
9

Was sind einige gute Schritte für eine reibungslose Migration von PHP4 zu PHP5 zu folgen. Was sind einige Arten von Code, die wahrscheinlich brechen werden?PHP4 zu PHP5 Migration

Antwort

8

Ich habe auch einmal an einer App gearbeitet, die die XML-Unterstützung von PHP4 ziemlich stark verwendet hat und ziemlich viel Arbeit erfordert hätte, um zu PHP5 zu wechseln.

Eine der anderen wichtigen Änderungen, die ich zu der Zeit betrachtete, war die Änderung der Standardbehandlung von Funktionsparametern. In PHP4, wenn ich mich erinnere, waren sie Pass-by-Kopie, wenn Sie nicht anders angegeben, aber in PHP5 wird standardmäßig auf Pass-by-Reference geändert. In gut geschriebenen Code wird das wahrscheinlich keinen großen Unterschied für Sie machen, aber es könnte sicherlich Probleme verursachen.

Ich denke, eine andere Sache, die ich gefunden habe, ist geändert, dass Objekte ihr 'dieses' Feld nicht mehr überschreiben dürfen. Ich würde sagen, das war eine wirklich schlechte Idee (und ich denke, es war vielleicht keine absichtliche Funktion in PHP4), aber ich habe sicherlich einige Teile unseres Systems gefunden, die sich darauf verlassen haben.

Hoffe, dass einige davon hilft.

+0

Ich zufällig gerade diesen Beitrag an der Spitze der Google-Suchergebnisse zu sehen, wenn ich nach PHP4 vs PHP5 Passing Argumente zu Funktionsverhalten gesucht. [Das PHP-Handbuch] (http://php.net/manual/en/functions.arguments.php) sagt etwas anderes; passing by copy (Übergabe nach Kopie) ist _still_ der Standardwert. –

1

Wir hatten eine App, die stark auf den PHP 4 XML-DOM-Funktionen verlassen und es erforderlich, PHP eine Menge Umrüsten 5.

Darüber hinaus werden die meisten Änderungen zu wechseln wurden Verbesserungen, um Dinge wie Fehlerbehandlung (zu nutzen von Ausnahmen) und PHP-Klassen.

2

Der beste Rat, den ich jemand geben könnte mit PHP4 arbeiten, ist dies:

error_reporting(E_ALL); 

Es ziemlich viel wird Ihnen genau sagen, was Sie tun müssen.

+0

Vor oder nach der Migration? –

1

OOP ist einer der größten Unterschiede. Es wird nicht brechen, da die PHP4 und PHP5 OOP Styles austauschbar sind, aber ich würde empfehlen, die neuen OOP Styles von PHP5 zu nutzen. Es ist keine große Arbeit, die vorhandenen Klassen in PHP5 umzuwandeln und es gibt einige zusätzliche magische Methoden, die dabei helfen können, einige existierende Hacks zu lösen (ich erinnere mich daran, dass in den meisten Klassen eine nahezu nutzlose __toString-Methode verwendet wurde).