Migrando php4 / mysql4 a php5 / mysql5: ¿problemas de php esperados?

Tengo una aplicación web heredada php4 / mysql4 (MyISAM, db contiene algunos cms, algunos datos de usuario, alguna aplicación de calendario). Ahora voy a migrar a un nuevo servidor con php5 / mysql5.

¿Cuáles son los problemas típicos de php en dicho escenario de migración (consultas php, sql, cualquier cosa)?

He oído que el parámetro de función que pasa cambió, llamada por referencia / llamada por valor. ¿Puedes dar un ejemplo o explicar?

¿Algo más que deba tener en cuenta?

(Los problemas de mysql están cubiertos en una pregunta diferente: Migrando php4 / mysql4 a php5 / mysql5: cambiar a InnoDB? )

La mayoría de los problemas de compatibilidad con PHP 4/5 son dos cosas:

  • nuevas palabras reservadas
  • nuevo backend clase / objeto

La mayoría del código v4 se ejecutará bien en v5. Donde es probable que se encuentre con problemas es un código que depende de las limitaciones del modelo de clase de v4 o aprovecha los caprichos de referencia de v4. Pero la mayoría de las personas no codifican contra esos límites (lo tengo, es por eso que sé que están allí).

Si está atascado con los límites de clase / objeto, puede ejecutar el motor Zend en un modo “v1” que hace que las clases y los objetos se comporten como en v4. Esto está documentado.

Creo que la mejor ayuda de migración proviene de los mismos PHP.

Estoy en medio de una migración y estoy encontrando muchos problemas de aliasing .

Si desea tener un código limpio, deberá encontrar la solución adecuada para su fragmento específico. Si la limpieza no es tan importante, puede encontrar esta función realmente útil:

function php4_clone($object) { if (version_compare(phpversion(), '5.0') < 0) { return $object; } else { return @clone($object); } }