Tools zum Hervorheben von veralteten Funktionen in PHP4 -Quellen?
-
13-09-2019 - |
Frage
Gibt es magische Tools, mit denen ich den für PHP4 geschriebenen Quellcode scannen kann, um verwertete Funktionen in PHP5 hervorzuheben? Ich führe derzeit die neueste Version von PHP auf einem Server aus und muss diesen Code portieren. Gibt es da draußen etwas, das mir die Hand geben kann?
Lösung
PHP 5.3 wirft eine E_DEPRECATED
Warnung Wenn Sie Ihre Fehlerberichterstattung festlegen, um sie anzuzeigen.
Andere Tipps
Ich wollte so etwas selbst machen. Verwenden dieser Liste von Veraltete Merkmale in PHP 5.3.x, Ich habe einen Regex gemacht, um nach Verwendung dieser Funktionen zu suchen:
(?i:(call_user_method\(|call_user_method_array\(|define_syslog_variables\(|dl\(|ereg\(|ereg_replace\(|eregi\(|eregi_replace\(|set_magic_quotes_runtime\(|session_register\(|session_unregister\(|session_is_registered\(|set_socket_blocking\(|split\(|spliti\(|sql_regcase\(|mysql_db_query\(|mysql_escape_string\())
(Fall unempfindlich, mit jedem Funktionsnamen, einschließlich der öffnenden Klammern, nur um falsch positive Ergebnisse zu vermeiden. "DL" würde sonst viel Lärm auffordern.)
Wenn Sie auf einem System sind mit find
und grep
, Sie könnten dann einfach so etwas ausführen:
find <directory to search> -type f -name '*.php' -exec grep -R -P -H "<above regex>" {} \;
Nur um ein konkretteres Beispiel zu machen, habe ich gerade Folgendes verwendet:
find htdocs -type f -name '*.php' -exec grep -R -P -H "(?i:(call_user_method\(|call_user_method_array\(|define_syslog_variables\(|dl\(|ereg\(|ereg_replace\(|eregi\(|eregi_replace\(|set_magic_quotes_runtime\(|session_register\(|session_unregister\(|session_is_registered\(|set_socket_blocking\(|split\(|spliti\(|sql_regcase\(|mysql_db_query\(|mysql_escape_string\())" {} \;
Sieht so aus, als müsste ich jetzt ein paar Fälle von ersetzen session_register
und session_unregister
mich selbst!
Das Gleiche könnte für veraltete INI -Richtlinien und Parameter getan werden.
Das Anhänge des Handbuchs Enthält einige Migrationsinformationen, aber ich denke nicht, dass es enthält, wonach Sie suchen.
Eine Möglichkeit (die ungenau sein könnte, aber verwendet werden könnte), an die ich dachte, dass die Nachrichten in jedem PHP -Download enthalten sind. Ich bin ein Skript schreiben ATM, der diese Datei analysiert und nach veralteten Funktionen prüft, könnte etwas sein, das ich hinzufügen könnte. Ich arbeite an einem anderen Projekt -Geldautomaten, aber ich möchte in der größeren umgebauten Version Funktionen dafür hinzufügen.