PHP 7 a PHP 8

M

Buenas,

Me han encargado un proyecto que de momento no sé por donde cogerlo....

El enunciado es fácil: tengo una serie de archivos php en la versión 7 que tengo que pasar a la versión 8.

Para hacerlo más fácil, me he descargado el PHPStorm, pero no consigue detectarme muchos errores por no decir ninguno. He leído mucha documentación al respecto, pero no sé aplicar los conocimientos al proyecto. Para mí, todo está bien y no modificaría nada, pero hay cosas que seguramente se pueden mejorar a PHP 8.

No se si puedo pasar un ejemplo del código aquí y ver si alguien me podría dar un par de indicaciones que podría modificar para que sea PHP 8.

spoiler

Muchas gracias!

-Yepeto-

Eres trol poniendo las contraseñas o no es público del dominio? De todas formas, si función con PHP 8, lo mismo es que no tienes que cambiar nada.

1 respuesta
spud

Bastante por lo que veo...

1 respuesta
Mubris

Hay que ver la de gilipolleces que se piden a veces.

M

#2 sorry, no me ha dado tiempo a borrar las cosas importantes. Ya esta modificado correctamente.

#3 podrias indicarme mas o menos que cosas?

willy_chaos

wtf, no conocen el uso de arrays?

chica_n ?

un array de n y tienes lo mismo y menos mierda en el codigo xD

1 1 respuesta
Wei-Yu

#6 son deconstructed arrays, se hace por performance.

S

Yo creo que si en el formulario pones de telefono:

' or 1=1 -- a

Se arreglan todos tus problemas

1 respuesta
M

#8 creo que hay mas cosas que modificar para que se adapte a php 8 pero no se por donde empezar

Sonos

El código claro que es mejorable, pero lo que el quiere es cambiar de versión.

Normalmente cuando cambias de versión simplemente tirando de los errores/logs en ejecución ya ves que funciones están obsoletas, o no se recomienda su uso y las has de cambiar por nuevas, todo depende, no es lo mismo estar en un 7.0 que en un 7.4 para pasarse a 8/8.1.

Para ver todos los errores puedes dejar comentada la línea que tienes ahora, y poner
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Eso si, yo cambiaría todo lo relacionado a la conexión de la base de datos de mysqli a pdo.

1 1 respuesta
M

#10 me he descargado phpstorm y sí que salen algunos warnings que no errores. Entiendo que son estas las mejoras?

1 respuesta
Sonos

#11 No he usado PHPStorm, eso es un editor entiendo, que te avisará de errores de sintaxis o similar no? pero para saber si el php funciona tienes que ejecutarlo, te permite ejecutarlo con click derecho y RUN? tienes un entorno de pruebas en local?

1 respuesta
M

#12 tengo xaamp actualizado a php 8 y esta funcionando pefectamente

1 respuesta
Sonos

#13 Pues básicamente es eso, si el código se ejecuta sin errores en el entorno 8.0, ya lo tendrías listo. En ocasiones toca cambiar mucho código, en otras funciona todo desde el momento 0.

Tunnecino

Aparte de que el código da bastante grima, y me ha trasladado a hace casi 18 años en el pasado, la mejor forma de "pasar" es si funciona, es que es compatible. PHP 7 y 8 sigue siendo el mismo lenguaje, salvo con los cambios y los deprecated, y las nuevas funciones.

PiradoIV

Mira la documentación, siempre viene con guías para actualizar:
https://www.php.net/migration80

Soltrac

Cuando se escribía así, desu ni había nacido....

1 respuesta
M

#17 ya se ha comentado esto más arriba y ya me ha quedado claro.

vivora

Nosotros en la empresa hemos hecho recientemente cambio a 8.1, y salvo alguna función de php que ahora no acepta como parámetro de entrada un string vacío, y algún que otro problema con nulls, poca cosa más hemos tenido que tocar.

1 respuesta
M

#19 eso es lo que he leido en la documentación de php. Tema funciones, classes, null, etc....

El tema es que los archivos que me han pasado no tiene nada de todo esto.

Me huelo que a lo mejor es una pregunta trampa.

JuAn4k4

Lo que deberías hacer:

Leer la documentación oficial, Suelen poner que hay que cambiar.
No tocar más allá de lo justo y necesario.
Hacer muchas pruebas de regresión, y de load/performance testing.
Crear un plan de despliegue que vaya con cuidado, usando canaries e ir incrementando el % de tráfico poco a poco.
Fin.

Si empiezas a cambiar cosas porque en php8 se puede, acabas haciendo un Big Bang de la ostia que como algo vaya mal, la lías parda.

PD: nunca os fiéis de los cambios backwards compatibles.

Usuarios habituales