¿Herramientas para resaltar las funciones desaprobadas en las fuentes de PHP4?

StackOverflow https://stackoverflow.com/questions/1120893

  •  13-09-2019
  •  | 
  •  

Pregunta

¿Hay alguna herramienta mágica que pueda usar para escanear el código fuente que se escribió para PHP4 para resaltar las funciones desaprobadas en PHP5? Actualmente estoy ejecutando la última versión de PHP en un servidor y necesito portar este código. ¿Hay algo por ahí que pueda echarme una mano?

¿Fue útil?

Solución

PHP 5.3 lanzará un E_DEPRECATED Advertencia si establece sus niveles de informes de errores para mostrarlos.

Otros consejos

Yo mismo quería hacer algo como esto. Usando esta lista de Características desaprobadas en PHP 5.3.x, Hice una regex para buscar cualquier uso de estas funciones:

(?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\())

(Insensible en el caso, con cada nombre de la función, incluido el paréntesis de apertura solo para evitar falsos positivos; "DL" traería mucho ruido de lo contrario).

Si estás en un sistema con find y grep, entonces podrías ejecutar algo como esto:

find <directory to search> -type f -name '*.php' -exec grep -R -P -H "<above regex>" {} \;

Solo para hacer un ejemplo más concreto, solo usé lo siguiente:

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\())" {} \;

Parece que ahora necesito reemplazar algunos casos de session_register y session_unregister ¡mí mismo!

Se podría hacer el mismo tipo de cosas para las directivas y parámetros INI desactivados.

los apéndices del manual Contiene información de migración, pero no creo que contenga lo que está buscando.

Una forma (que podría ser inexacta pero podría usarse) en la que pensé era en las noticias. estoy Escribir un guión ATM que analiza este archivo y la verificación de funciones desactivadas podría ser algo que podría agregar. Estoy trabajando en otro cajero automático del proyecto, pero me gustaría agregar funcionalidad para esto en la versión reconstruida más grande.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top