2016-08-09 63 views
2

Ich habe eine Website auf einem Server mit PHP 4.4. (ja es ist exist)Liste der veralteten Funktionen zwischen php4.4 -> php7

Ich muss es auf einem anderen Hosting mit PHP 7 verschieben Ich habe versucht, in lokalen, und es ist voller Fehler und nichts funktioniert.

Zum "scannen" der Dateien, ich möchte ein Skript machen, um die alte Funktion zu finden und nach, einer nach dem anderen, "reparieren". Die meisten von .php sind "schmutziges Skript", nicht gut organisiert, aber meine Aufgabe ist es nur, diese Website zu verschieben und sie an php7 anzupassen.

Aber ich brauche die Liste der veralteten oder inkompatiblen Funktion von Php 4,4 bis Php 7

zu finden, wo ich eine solche Liste nicht finden können ???

UPDATE:

habe ich die meisten Probleme in den wichtigsten Dateien (die meisten Probleme sind ereg Funktion und mysql -> mysqli) finden. In der gleichen Zeit, ich vereinfache die Skripte, weil die Entwickler die gleiche Funktion mit differents Name viele Male verwendet haben (8 mal in der gleichen Datei, mit 8 differents Name -_-) So habe ich eine function.php wo Ich stelle alle Funktionen und ich füge es in die Dateien ein.

Es ist nicht einfach, nach einem schmutzigen developper zu arbeiten -_-

+0

Einfach die Fehler nacheinander beheben (oder die gesamte Seite neu schreiben), es gibt VIELE Sachen, die sich zwischen 4.4 und 7 geändert haben ... Stellen Sie sicher, dass Sie auch vollständige Fehlermeldungen erhalten, damit Sie auch alle Benachrichtigungen sehen . – Jite

+1

Ich würde vorschlagen, kleine Schritte für diese Migration zu machen. Von 4.4 zu 5 und schließlich zu php7. In diesem Handbuch finden Sie weitere Informationen http://php.net/manual/en/migration5.php – Whiteulver

+0

https://github.com/squizlabs/PHP_CodeSniffer könnte helfen, aber das wird schmerzhaft sein. Wie groß ist die Codebasis? Eine vollständige Neuschreibung mit einem modernen Framework könnte eine bessere Option sein – Steve

Antwort

2

Update: Ein Kommentar bringt einen guten Punkt. Wenn ein Upgrade Sie in vollem Umfang zu nicht veraltet 5,6 (loszuwerden Fehler und Code Bewirken, dass Warnungen veraltet) Sie sollte unter 7 mit höchstwahrscheinlich nur Hinweise zu veralteten Versionen laufen können (die Sie deaktivieren können)

Nehmen Sie zuerst einen tiefen Atemzug und stellen Sie fest, warum Sie von 4,4 auf 7 upgraden müssen. Ich kann den unmittelbaren Wert von 5,6 sehen, aber 7 ist in einer Sitzung (vielleicht) etwas aggressiv. Wenn Sie jedoch, für die Herausforderung genug Spartan ....

Got zur Freigabe der Geschichte Seite und lesen Sie jede Veröffentlichung von Version 4.4, was auch immer Version Sie zur Verfügung haben, dass Sie laufen freuen:

http://php.net/releases/ 

Jede Version, die Ihnen wichtig ist, sollte eine changlog Verbindung haben. Klicken Sie darauf, suchen Sie nach 'veraltet'.

Es gibt tatsächlich nur 2 Dateien ein Changelog für php4 Version und einen für php 5 Version.

Heck, wenn Sie einen Crawler-Skript in PHP schreiben ehrgeizig bekommen nur die Seiten zu ziehen und die veralteten Linien parsen.

Sobald Sie durch die Korrektur aller PHP 4 bis 5 sind.6 Unterschiede, werfen Sie einen Blick auf php Migration 7 (meine Notiz oben über das Laufen mit deprecation Hinweisen):

http://php.net/manual/en/migration70.incompatible.php

Obwohl einige es als negativ zu sehen, PHP wurde painfuly rigorose bei ganz Aufrechterhaltung eine Menge Abwärtskompatibilität, also erwarte ich nicht viel, wenn ich zu PHP 5.3 oder sogar 5.4 umkehre (als sie anfingen, eine Menge älterer PHP-Dateien abzulehnen).

+0

Ich würde sagen, dass der Sprung von 5,6 auf 7.x kleiner als 4,4 bis 5,6 wäre. Die meisten php 5.6 Code läuft gut in 7.x, und alle Sachen, die veraltet oder entfernt werden würde (oder zumindest sollte) eine Notiz oder eine Warnung in 5.6 produzieren (mit einigen Ausnahmen natürlich), sollte daher behoben werden in der ersten Migration. – Jite

+0

@Jite Das ist fair, wenn sie auf 5.6 kommen und alle veralteten Sachen von 5.3, 5.4 und 5.5 entfernen, bekommen sie nur Nachrichten zum größten Teil. – Ray

+1

@Jite Eine Notiz darüber zu meiner Antwort hinzugefügt. Danke, dass Sie den Punkt zur Diskussion gebracht haben. – Ray