Matriz de compatibilidad de versiones PHP para PrestaShop (1.6 a 9.x)
Matriz de compatibilidad de versiones PHP para PrestaShop
Elegir la versión correcta de PHP para tu tienda PrestaShop es una de las decisiones de infraestructura más críticas que tomarás. Ejecutar una versión PHP incompatible puede causar pantallas en blanco, flujos de pago defectuosos, fallos en módulos y vulnerabilidades de seguridad. Esta guía completa cubre cada versión de PrestaShop desde 1.6 hasta 9.x y asocia cada una con sus versiones PHP compatibles, configuraciones recomendadas y consideraciones de actualización.
Por qué la versión PHP importa para PrestaShop
PHP es el lenguaje del lado del servidor que impulsa PrestaShop. Cada versión principal de PHP introduce mejoras de rendimiento, nuevas características del lenguaje y depreca funciones más antiguas. El código fuente de PrestaShop evoluciona en paralelo con PHP, lo que significa que las versiones más recientes de PrestaShop aprovechan las características modernas de PHP mientras abandonan el soporte para las obsoletas.
Usar la versión PHP incorrecta causa tres categorías de problemas:
- Errores fatales - Las funciones eliminadas en versiones PHP más recientes (por ejemplo, las funciones
mysql_*eliminadas en PHP 7.0,each()eliminada en PHP 8.0) causan fallos inmediatos. - Advertencias de deprecación - Las funciones deprecadas generan advertencias que pueden romper las respuestas AJAX, la salida JSON y la generación de PDF cuando
display_errorsestá habilitado. - Exposición a riesgos de seguridad - Las versiones PHP que han llegado al final de su vida útil ya no reciben parches de seguridad, dejando tu tienda vulnerable.
Matriz de compatibilidad completa
PrestaShop 1.6.x
| Versión PrestaShop | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2+ |
|---|---|---|---|---|---|---|
| 1.6.0.x - 1.6.0.14 | Sí | Sí | Sí | No | No | No |
| 1.6.1.0 - 1.6.1.4 | Sí | Sí | Sí | Parcial | No | No |
| 1.6.1.5 - 1.6.1.23 | Sí | Sí | Sí | Sí | Sí | No |
| 1.6.1.24+ | Sí | Sí | Sí | Sí | Sí | No |
PHP recomendado para 1.6.x - PHP 7.1. Ofrece el mejor equilibrio entre rendimiento y compatibilidad. Ejecutar 1.6.x en PHP 7.2+ requiere modificaciones en archivos del núcleo que interrumpen la ruta de actualización y no es recomendable.
PrestaShop 1.7.x
| Versión PrestaShop | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0+ |
|---|---|---|---|---|---|
| 1.7.0.x - 1.7.4.x | Sí (recomendado) | No | No | No | No |
| 1.7.5.x | Sí | Sí (recomendado) | No | No | No |
| 1.7.6.x | Sí | Sí (recomendado) | Sí | No | No |
| 1.7.7.x | Sí | Sí | Sí (recomendado) | Parcial | No |
| 1.7.8.x | Sí | Sí | Sí | Sí (recomendado) | No |
Advertencia crítica - Ninguna versión de PrestaShop 1.7 soporta PHP 8.0 o posterior. Si ejecutas PS 1.7.6 en PHP 8, Smarty se bloqueará inmediatamente porque el motor de plantillas utiliza funciones eliminadas en PHP 8.0. La eliminación de la función each() y los cambios en el funcionamiento de array_key_exists() con objetos causan errores fatales.
PrestaShop 8.x
| Versión PrestaShop | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | PHP 8.3 |
|---|---|---|---|---|---|---|---|
| 8.0.0 - 8.0.2 | Sí (mín) | Sí | Sí | Sí | Parcial | No | No |
| 8.0.3 - 8.0.5 | Sí (mín) | Sí | Sí | Sí | Sí (recomendado) | No | No |
| 8.1.0 - 8.1.2 | No | Sí (mín) | Sí | Sí | Sí (recomendado) | Parcial | No |
| 8.1.3 - 8.1.7 | No | Sí (mín) | Sí | Sí | Sí (recomendado) | Sí | Parcial |
PHP recomendado para 8.x - PHP 8.1. Es el punto óptimo que ofrece compatibilidad completa, soporte de seguridad activo y excelente rendimiento con compilación JIT. PHP 8.1 trae fibers, enums, propiedades readonly y tipos intersection que PrestaShop 8 puede aprovechar.
PrestaShop 9.x
| Versión PrestaShop | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4 |
|---|---|---|---|---|
| 9.0.x | Sí (mín) | Sí | Sí (recomendado) | Sí |
PHP recomendado para 9.x - PHP 8.3 o 8.4. PrestaShop 9 funciona con Symfony 6.4 LTS y requiere PHP 8.1 como mínimo. PHP 8.4 introduce Property Hooks y visibilidad asimétrica que futuras actualizaciones de PrestaShop aprovecharán.
Fechas de fin de vida de PHP que debes conocer
| Versión PHP | Soporte activo hasta | Correcciones de seguridad hasta | Estado (2026) |
|---|---|---|---|
| PHP 7.4 | Nov 2021 | Nov 2022 | EOL - Peligroso |
| PHP 8.0 | Nov 2022 | Nov 2023 | EOL - Peligroso |
| PHP 8.1 | Nov 2023 | Dic 2025 | EOL - Actualizar pronto |
| PHP 8.2 | Dic 2024 | Dic 2026 | Solo seguridad |
| PHP 8.3 | Dic 2025 | Dic 2027 | Solo seguridad |
| PHP 8.4 | Dic 2026 | Dic 2028 | Soporte activo |
Si en 2026 estás usando PHP 7.4 o 8.0, estás operando con una versión no soportada que ya no recibe parches de seguridad. Este es un riesgo crítico para cualquier tienda de comercio electrónico que maneja datos de pago.
Cómo verificar tu versión PHP actual
Método 1 - Back Office de PrestaShop
Navega a Parámetros avanzados > Información. La sección Información del servidor muestra tu versión PHP, junto con el límite de memoria, tiempo máximo de ejecución y otras configuraciones relevantes.
Método 2 - Archivo PHP Info
Crea un archivo llamado phpinfo.php en el directorio raíz de tu tienda con este contenido:
<?php phpinfo();Accede a él a través de tu navegador en https://tutienda.com/phpinfo.php. Elimina este archivo inmediatamente después de verificar - expone detalles sensibles de configuración del servidor.
Método 3 - Línea de comandos
php -v
php -r "echo PHP_VERSION;"Ten en cuenta que la versión PHP del CLI puede diferir de la versión PHP del servidor web. Verifica siempre a través de la interfaz web o phpinfo().
Problemas comunes con la versión PHP incorrecta
Pantalla blanca de la muerte (WSOD)
El síntoma más común de incompatibilidad PHP. Revisa tu log de errores PHP (normalmente en /var/log/php-errors.log o accesible a través de tu panel de hosting). Errores típicos:
Fatal error: Uncaught Error: Call to undefined function mysql_connect()
Fatal error: Uncaught Error: Call to undefined function each()
Fatal error: Cannot use "parent" when current class scope has no parentLas advertencias de deprecación rompen AJAX
Cuando display_errors = On y actualizas PHP, los avisos de deprecación se anteponen a las respuestas AJAX. Esto rompe el parsing JSON en el back office, causando que funciones como la búsqueda de productos, búsqueda de clientes y creación de pedidos fallen silenciosamente. La solución:
; php.ini
display_errors = Off
log_errors = On
error_log = /ruta/hacia/php-error.logIncompatibilidad de módulos
Los módulos de terceros pueden no soportar tu versión PHP. Antes de actualizar PHP, verifica la compatibilidad de cada módulo instalado. Áreas problemáticas comunes:
- Módulos que usan
create_function()- eliminada en PHP 8.0 - Módulos que usan funciones
mysql_*- eliminadas en PHP 7.0 - Módulos que usan acceso posicional a cadenas con llaves
$str{0}- eliminado en PHP 8.0 - Módulos que no manejan tipos de retorno nullable - más estrictos desde PHP 8.1+
Cómo actualizar PHP para PrestaShop de forma segura
Paso 1 - Auditar tu configuración actual
Antes de cambiar nada, documenta tu entorno actual:
php -v # Versión PHP actual
php -m # Extensiones cargadas
php -i | grep memory # Límite de memoria
php -i | grep max_exec # Límite de tiempo de ejecuciónPaso 2 - Verificar la compatibilidad de módulos
Revisa cada módulo instalado. Consulta la documentación del desarrollador del módulo sobre el soporte de versiones PHP. Si un módulo no se ha actualizado en más de dos años, es probable que sea incompatible con PHP 8.x.
Paso 3 - Probar primero en staging
Nunca actualices PHP en tu servidor de producción sin pruebas previas. Crea una copia staging de tu tienda y prueba con la nueva versión PHP. Verifica:
- Las páginas del front office cargan correctamente
- Páginas de producto, páginas de categoría, páginas CMS
- El proceso de carrito y checkout se completa
- Los módulos de pago procesan transacciones de prueba
- La funcionalidad del back office funciona (edición de productos, gestión de pedidos)
- Todos los módulos de terceros funcionan correctamente
- Los cron jobs se ejecutan sin errores
Paso 4 - Actualización con plan de rollback
La mayoría de los proveedores de hosting permiten cambiar la versión PHP desde el panel de control (cPanel, Plesk, DirectAdmin). Mantén la versión PHP anterior disponible para un rollback rápido si surgen problemas.
Paso 5 - Limpiar todas las cachés después de la actualización
Después de cambiar la versión PHP, limpia cada capa de caché:
# Limpiar la caché de PrestaShop
rm -rf var/cache/prod/* var/cache/dev/*
# Limpiar las plantillas Smarty compiladas
rm -rf var/cache/smarty/compile/* var/cache/smarty/cache/*
# Si usas OPcache, reiniciar PHP-FPM
systemctl restart php8.3-fpm
# Limpiar la caché del CDN (Cloudflare, etc.)Mejores prácticas de configuración PHP para PrestaShop
Independientemente de la versión PHP elegida, estas configuraciones son esenciales para un rendimiento óptimo de PrestaShop:
; Configuraciones php.ini recomendadas
memory_limit = 512M
max_execution_time = 300
max_input_vars = 10000
post_max_size = 32M
upload_max_filesize = 32M
; Configuraciones OPcache (críticas para el rendimiento)
opcache.enable = 1
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 16229
opcache.revalidate_freq = 60
opcache.fast_shutdown = 1
; Extensiones requeridas
extension = intl
extension = zip
extension = gd
extension = curl
extension = mbstring
extension = openssl
extension = pdo_mysql
extension = fileinfoConsideraciones para desarrolladores de módulos
Si desarrollas módulos de PrestaShop, debes considerar cuidadosamente la compatibilidad PHP:
- Versión PHP mínima - Apunta a PHP 7.2 como mínimo para módulos que deben funcionar en PrestaShop 8.0+, o PHP 8.1 para módulos exclusivos de PrestaShop 9.
- Usa PHPStan o Psalm - Las herramientas de análisis estático detectan incompatibilidades de versión PHP antes que tus usuarios.
- Evita la sintaxis específica de versión - Características como las expresiones match (PHP 8.0), los enums (PHP 8.1) y las propiedades readonly (PHP 8.1) limitan tu módulo a esas versiones PHP y superiores.
- Prueba en múltiples versiones - Usa contenedores Docker con diferentes versiones PHP para probar tu módulo en todo el rango de compatibilidad.
Preguntas frecuentes
¿Puedo ejecutar PrestaShop 1.7 en PHP 8?
No. Ninguna versión de PrestaShop 1.7 soporta oficialmente PHP 8.0 o posterior. Aunque algunos usuarios han aplicado parches para hacerlo funcionar parcialmente, esto no está soportado y causará problemas con las actualizaciones. El camino correcto es migrar a PrestaShop 8.x.
¿Debería usar PHP 8.4 con PrestaShop 8.1?
No recomendado. PrestaShop 8.1 fue desarrollado y probado principalmente con PHP 8.1. Aunque PHP 8.2 tiene soporte parcial en versiones 8.1.x posteriores, PHP 8.4 introduce cambios que pueden causar problemas con componentes Symfony más antiguos. Quédate con PHP 8.1 para PrestaShop 8.x.
¿Cuánto más rápido es PHP 8.x en comparación con 7.x?
Los benchmarks muestran que PHP 8.1 es aproximadamente 20-30% más rápido que PHP 7.4 para cargas de trabajo típicas de PrestaShop. El compilador JIT proporciona el mayor beneficio para tareas computacionales. Para operaciones vinculadas a E/S (consultas de base de datos, lectura de archivos), la mejora es menor pero aún medible.
¿Actualizar PHP requiere actualizar PrestaShop?
No necesariamente, pero ambos van de la mano. Puedes actualizar PHP dentro del rango soportado para tu versión de PrestaShop sin actualizar PrestaShop en sí. Sin embargo, si quieres usar una versión PHP moderna (8.3+), necesitarás PrestaShop 8.1 o 9.x.
¿Le resultó útil esta respuesta?
¿Aún tiene preguntas?
Can't find what you're looking for? Send us your question and we'll get back to you quickly.