Generalidades
PHP 7 es la próxima actualización importante del lenguaje de programación PHP que ofrece varios beneficios sobre las versiones anteriores, como una nueva versión de Zend Engine y un rendimiento más rápido.
PHP 7 también ha eliminado varias funciones obsoletas de versiones anteriores. Debido a esto, los usuarios no deben actualizar sus sitios hasta que estén seguros de que todo es totalmente compatible con la nueva versión.
Consulta el siguiente artículo para obtener instrucciones sobre cómo actualizar la versión PHP de tu sitio:
Beneficios
La siguiente lista está tomada de php.net:
- Rendimiento mejorado: PHP 7 es hasta dos veces más rápido que PHP 5.6.
- Uso de memoria significativamente reducido.
- Árbol de sintaxis abstracta.
- Soporte consistente de 64 bits.
- Jerarquía de excepciones mejorada.
- Muchos errores fatales convertidos en excepciones.
- Generador seguro de números aleatorios.
- Se eliminaron SAPI y extensiones antiguas y no compatibles.
- El operador de fusión nulo (??).
- Declaraciones de tipo de retorno y escalar.
- Clases anónimas.
- Cero costo afirma.
Pautas generales de actualización
- Puedes actualizar la versión PHP de su sitio en tu panel.
- Asegúrate de que tu software y todos los plugins/temas/extensiones sean compatibles con PHP 7 antes de actualizar.
- Asegúrate de que las consultas de su base de datos estén usando mysqli o PDO_MySQL para conectarte, ya que la extensión mysql se ha eliminado. Consulta la sección Mi sitio no se conectará a mi base de datos después de actualizar a PHP 7 a continuación para obtener detalles.
PHP 7.3 Problemas conocidos
JIT compilation failed: no más errores de memoria
Si ves errores de "Error de compilación JIT: no más memoria o JIT compilation failed: no more memory" en tu sitio, esto se debe a un error conocido en PHP 7.3. Para evitar esto, puede deshabilitar el compilador JIT agregando la siguiente línea a tu archivo phprc:
pcre.jit = 0
Si necesitas ayuda para crear y/o modificar este archivo, consulta las siguientes instrucciones: ompiler agregando la siguiente línea a su archivo phprc:
- Crear un archivo phprc vía FTP (para principiantes)
- Crear un archivo phprc vía SSH (para usuarios avanzados)
mcrypt.so
El soporte para mcrypt se ha eliminado a partir de PHP 7.2.0. Cualquier script que dependa de mcrypt deberá actualizarse para usar OpenSSL o Sodium.
Preguntas Frecuentes
¿Qué pasó con PHP 6?
Esta era una versión de desarrollo que nunca se convirtió en un lanzamiento oficial. Ve los siguientes enlaces para más información:
¿PHP 7 está disponible en máquinas Nginx?
Si.
Solución de problemas
Mi sitio no se conectará a mi base de datos después de actualizar a PHP 7
Las versiones anteriores de PHP ofrecían tres API de PHP para acceder a una base de datos MySQL. Ellos eran:
PHP 7 ha eliminado el soporte para la extensión mysql y afecta lo siguiente:
- Cualquier consulta que use una función mysql_connect no funcionará.
- PHP 7 solo permite conexiones a una base de datos MySQL usando mysqli o PDO_MySQL.
Todos los scripts deben actualizarse para continuar funcionando.
Errores de sesión
El siguiente error de PHP puede aparecer si tu código usa sesiones.
[Tue Jan 05 12:41:24.497212 2021] [fcgid:warn] [pid 16093:tid 4253425600256] [client xxx.xxx.xxx.xxx:11929] mod_fcgid: stderr: PHP Warning: session_start(): Failed to read session data: user (path: /home/username/tmp/) in /home/username/example.com/file.php on line 212
Mira la siguiente solución de PHP.net para obtener detalles sobre cómo resolver esta advertencia.