
Recientemente se repitió una situación similar: en la universidad donde empecé a dar clases de programación con PHP5 hubo que acondicionar la infraestructura de los laboratorios para que soportaran esta versión. El primer miedo que se generó fue que al actualizar la herramienta los cursos que seguían usando PHP4 se encontraran con el problema de que sus aplicaciones dejaran de funcionar.
Las únicas diferencias que recuerdo me causaron alguna dificultad cuando quise probar sitios PHP4 en el nuevo entorno PHP 5 fueron:
- Las variables pasadas por la URL - en PHP4 quedan disponibles inmediatamente, pero en PHP5 es obligatorio usar $_GET, $_POST, o directamente $_REQUEST.
- Las variables globales - aunque por suerte nunca usé (no es recomendable), están deshabilitadas en la configuración en PHP5 (register_globals = Off).
- Objetos siempre por referencia - en PHP4 todo es por valor a menos que se diga explícitamente (&), en PHP5 los objetos son automáticamente por referencia, no así las variables (que quedan igual que antes, por valor).
Con respecto a la configuración general
Existen algunos detalles que recuerdo de la configuración que creo importantes tener presentes ante cualquier problema que pueda surgir (en muchos casos la primer línea comentada con mi sigla EP es la original, la segunda corresponde a mis valores actuales):
; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
; Es el valor por defecto, y php4 debería funcionar de todas formas
zend.ze1_compatibility_mode = Off
;EP error_reporting = E_ALL
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
;EP display_errors = Off
display_errors = On
;EP display_startup_errors = Off
display_startup_errors = On
;EP ignore_repeated_errors = Off
ignore_repeated_errors = On
Documentación del manual
"Aunque PHP 5 ofrece varias características nuevas, está diseñado para ser tan compatible con versiones anteriores de PHP como es posible, y con muy poca funcionalidad afectada en el proceso."
Capítulos del manual oficial: Faq Migration y Migration5
Artículos varios:
No es tan dramático el cambio, pero hay que tener en cuenta estos detalles y hacerlo sin prever las consecuencias de una posible migración de software que luego fuera complicado revertir.