
Migrar de php4 a php5
Días atrás me encontré ante la tediosa tarea de migrar una aplicación (bastante grande) programada en php4 a un servidor bajo php5. Voy a exponer en este post algunas de las diferencias encontradas y que pueden ahorrar algún dolor de cabeza 😉
Algunas incompatibilidades
1.- En vez de copy() es preferible usar la función move_uploaded_file(), o mejor aún las funciones FTP como ftp_put() lo cual garantiza una transferencia más rápida y segura.
2.- Las variables del tipo $HTTP_* deben ser sustituidas por $_POST, $_GET, etc. A estas alturas es obvio pero hace años no lo era tanto. Por ejemplo: $HTTP_POST_FILES en php5 debe ser $_FILES.
3.- Debemos prestar mucha atención a los permisos otorgados a los directorios y al safe_mode.
4.- Las matrices deben siempre accederse por su índice $matriz[‘id’] nunca $matriz_id.
5.- En php4 era posible construir matrices en los campos html:
<input name="foto[]" type="image" />
Evitando esto potenciamos los estándares:
<input name="foto_x" type="image" />
6.- Las variables enviadas por formularios deben ser accedidas a través de $_GET, $_POST, así como debemos usar las variables superglobales en todo momento, además de tener en cuenta el register_globals. Si tenemos toda nuestra aplicación programada como en php4 o php3 y haciendo uso de las variables directamente (no las superglobales), podemos optar por el uso de la función extract(). Ejemplo:
extract($_POST,EXTR_SKIP);
A partir de ese momento ya podemos usar $mi_var_post como se venía haciendo.
7.- En php5 debemos definir la zona horaria con date_default_timezone_set().
Estos son solo algunas cuestiones resumidas, y este es un post abierto, así que si tienes alguna incompatibilidad o puntualización al respecto, sera un placer que lo expongas aquí.
Más información
- Migración desde PHP 4 a PHP 5 (manual oficial)
- Cómo migrar tus aplicaciones de PHP4 a PHP5
- PHP4 y PHP5: ¿Cuál elegir? ¿Migrar o no Migrar? El advenimiento de PHP6
4 Comments
webeame.net
Migrar de PHP4 a PHP5…
Voy a exponer en este post algunas de las diferencias encontradas y que pueden ahorrar algún dolor de cabeza ;)…
sX
en el caso del ejemplo de » no lo entiendo… como puedo recoger estas variables si no se cuantas vienen?(ya que se puede aumenter mediente javascript el nº de campos de un formulario polr ejemplo.)
Y por el tema de estandares… se hace de la misma manera que cuando pasas un enlace con variables index.php?var1=1&var_2=2
pero aplicando los caracteres [] en su entidad HTML.
Hay otra manera?
sX
Soy el de antes… debes tener el strip_tags me referia a caso 5
engo
Muy util el articulo, Gracias
Comments are closed for this post