¿Qué versión de PHP debería requerir tu proyecto?

Estos últimos días se está hablando mucho sobre la versión mínima de PHP que deberían requerir los proyectos. Todo empezó con esta conversación de GitHub en al que se discutía sobre qué versión mínima debería usar Symfony 3.0. Después de mucho debate, la decisión fue que Symfony 3.0 requerirá como mínimo PHP 5.5, pero podría requerir PHP 5.6 cuando se publique a finales de 2015.

Versión requerida vs Versión soportada

Aunque la mayoría lo tenéis claro, no está demás aclarar la diferencia entre estos dos conceptos. Requerir una versión significa que no funciona con versiones inferiores. Soportar una versión quiere decir que funciona para esa versión (también puede funcionar o no con versiones superiores e inferiores). En este artículo siempre vamos a hablar de requerir.

¿Qué versiones de PHP se utilizan?

Como no existe ninguna estadística fiable completamente, aquí van tres muy diferentes:

  • Según W3Techs: 5.3 (47%), 5.4 (25%), 5.2 (21%), 5.5 (5%) (fuente)
  • Según WordPress.org: 5.3 (38%), 5.2 (35%), 5.4 (23%), 5.5 (3%) (fuente)
  • Según Composer: 5.5 (48%), 5.4 (29%), 5.3 (15%), 5.6 (8%) (fuente)

Los datos de W3Techs son estimaciones, los datos de WordPress indican las versiones que utilizan sus usuarios para ejecutar esa aplicación y los datos de Composer indican qué versiones utilizan las máquinas que hacen un composer update o install.

Los datos reales probablemente se encuentran un punto medio, ya que WordPress sería el peor caso (sus usuarios son los que menos actualizan) y Composer sería el mejor caso (porque gran parte de esos datos se refiere a máquinas de desarrollo, no de producción).

PHP ha cambiado

En el pasado, PHP lanzaba una nueva versión cada 4 o 5 años y era común que los hostings, los programadores y las distribuciones de Linux tardaran años en actualizarse. Pero desde hace unos dos años, PHP lanza una versión cada año y también declara obsoleta una versión cada año. En el 2013 salió 5.5, en el 2014 salió 5.6, en el 2015 está previsto 5.7 o 7.0.

Uno de los mantras más populares en el mundillo PHP es que tu aplicación no debería requerir más que PHP 5.3, ya que cualquier otra versión más reciente es demasiado nueva. Una buena prueba de lo absurdo que resulta esto es que PHP 5.4 se dejó de soportar en septiembre de 2014 (tendrá soporte de seguridad hasta septiembre de 2015). Y PHP 5.5 va a dejar de soportarse dentro de unas pocas semanas, en enero de 2015 (se corregirán bugs de seguridad hasta junio de 2016).

PHP ha cambiado, así que nosotros también tenemos que cambiar. Hoy en día, esperar años a actualizar la versión de PHP es simplemente ridículo.

El caso aparte de WordPress

WordPress es un proyecto tan colosal que cualquier cosa que haga distorsiona la realidad y las estadísticas de PHP. Muchos hostings malos y baratos siguen sin actualizar a ninguna versión moderna de PHP porque como WordPress requiere 5.2.4, no es necesario actualizar.

En una reciente discusión a través de Twitter, le dije a Asier Marqués que en mi opinión "WordPress es irrelevante desde el punto de vista técnico". Como siempre, cualquier frase corta de Twitter sacada de contexto suena muy mal, así que voy a intentar explicarme.

En mi opinión WordPress es un modelo a seguir prácticamente en todo. Ha creado cientos de miles de puestos de trabajo en todo el mundo, ha generado un fabuloso negocio de cientos de millones de euros, se ha descargado más de 50 millones de veces, se ejecuta en 75 millones de sitios web, etc. Todo lo que tiene que ver con el producto y el negocio es perfecto.

Pero si hablamos de la parte técnica, es necesario recordar que WordPress requiere PHP 5.2.4, que se publicó el 30 de agosto de 2007. Esto quiere decir que WordPress no puede utilizar nada que PHP haya incorporado desde el verano de 2007. Casi 8 años sin introducir ninguna novedad tecnológica; no porque no quieran, sino porque no pueden.

WordPress ha decidido quedarse en 2007. Esta decisión es completamente legítima y no le ha impedido en absoluto crecer de manera explosiva. Pero otros proyectos (como Drupal, Laravel, phpBB, Zend, Symfony, etc.) han decidido que quieren evolucionar su código. Así que cuando hablamos de versiones PHP mínimas requeridas, creo que deberíamos hacer dos grupos: WordPress por un lado y el resto de proyectos PHP modernos por otro.

Con todo esto, en mi opinión, la versión mínima que deberíamos exigir a los proyectos PHP modernos sería PHP 5.5. Además, para este tipo de decisiones deberíamos olvidarnos completamente de WordPress, ya que se trata de un proyecto muy especial que tiene su propio ecosistema de hostings y servicios.

One more thing ...

En los últimos días se habían publicado ciertos rumores sobre WordPress y PHP 5.5. Hace unas horas he podido obtener por fin en Twitter una prueba gráfica de estos rumores:

WordPress podría requerir pronto PHP 5.5

(fotografía de Óscar Mérida publicada en este tuit)

Al parecer, WordPress está utilizando sus buenas relaciones con todos los hostings del mundo para presionarles y exigir como mínimo la versión 5.5 de PHP. Si esto se confirma, estaríamos ante una de las noticias más importantes de la historia de PHP, ya que la fuerza de WordPress haría que toda la comunidad actualizara rápidamente a PHP 5.5.

Comentarios

  1. Gracias por la aclaración Javier. En realidad, mi preocupación va porque estaba empezando a leer cosas a raíz de la petición de feedback sobre qué versión mínima de php exigir en Symfony3 del tipo: "si no usas php5.5 no deberías dedicarte al desarrollo con php".

    Creo que hay que poner en la balanza varias cosas aquí y una de ellas son los límites que los usuarios tienen para desplegar sus aplicaciones.

    Si Symfony quiere dirigirse a profesionales que administren su propia infraestructura es perfecto ir a la última. Por el contrario, si desean cubrir el mercado de la gente que no requiere una máquina dedicada, igual deberían replantearse sus debates y prioridades.

    Quizás ese tipo de target ha sido ya poco a poco descartado. De hecho, el requisito de levantar un servicio de opcode caché para tener rendimiento en una aplicación básica de Doctrine marca ya unos requisitos de hosting que no están en la media.

    El problema de los hostings no ha sido para nada Wordpress, son más bien los paneles de control y las versiones de php con paquetes que no tienen mantenimiento ni soporte oficial.

    Para un hosting que administra cientos de servidores, era muy complicado en el pasado estar a la última versión si el valor que aportaba era ínfimo a nivel de mercado y suponía tener algún tipo de inestabilidad o pérdida de soporte.

    Ahora como dices todo es distinto y php ha cambiado, a pesar de que algunos no lo consideren un lenguaje profesional. Sin embargo, está bien pensar qué tipo de producto es Symfony y para quien. Antes de iniciar el debate, durante la mañana, he seguido también lo anunciado de que Wordpress va a "exigir" a los hostings actualizarse a php5.5. En realidad lo tienen mucho más fácil: WordPress 5 que corra sobre php5.5. Veremos a ver si son capaces de tomar esa decisión.

    Los hostings no han decidido no actualizar la versión de php por WordPress sino WordPress ha decidido tener esa versión por los hostings.

    Si vamos a por un nicho concreto en lugar de a un mercado más amplio, plataformas menos adecuadas como WordPress van a tener más cantidad (que no calidad) de todo: desarrolladores (buenos o no), demanda, mercado y hosting compatible. Y esto puede que sea bueno, hacía falta mejorar la calidad de todo en php y se está consiguiendo. Pero lo único que digo es saber si esto lo tenemos claro sin desmerecer a los que trabajan con versiones antiguas, que no quiere decir por ello que no sepan lo que están haciendo.

    Un saludo.

    Asier Marqués el 14 de noviembre de 2014 21:20:21

  2. Gracias por tu comentario Asier. El matiz que haces al final me parece muy importante:

    Pero lo único que digo es saber si esto lo tenemos claro sin desmerecer a los que trabajan con versiones antiguas, que no quiere decir por ello que no sepan lo que están haciendo.

    Efectivamente hay casos en los que PHP no se puede actualizar por causas ajenas que no se pueden evitar. Y eso no quiere decir que esos programadores sean idiotas o estén obsoletos.

    En el artículo solo me refería a los programadores PHP que no se han enterado de todo lo que ha cambiado este mundo en los últimos dos años y que por eso siguen diciendo que PHP 5.2 está bien y que pasar de 5.3 es peligroso.

    Javier Eguiluz el 14 de noviembre de 2014 21:42:52

  3. Otra de las cosas que ha cambiado es el coste de tener y mantener tu propia infraestructura.

    Si solo queremos un blog en Wordpress (target de los hostings cutrones que mencionáis) podemos usar Github pages o otras alternativas gratuitas y si vamos a montar un negocio igual es buena idea coger un servidor dedicado en Linode o incluso aventurarse con AWS, GAE y sus Free Tier y ayudas a las startups. El coste por mes es bastante bajo si tenemos poco tráfico... y si hay tráfico, el hosting cutre tampoco valdrá.

    Por otro lado, hace no muchos años era un jaleo compilar las extensiones, usar PEAR, etc... hoy en día con Composer y lo mucho que han mejorado los repositorios de PHP en Homebrew, Aptitude o Yum y herramientas como Ansible, Puppet, etc lo hacen todo muchísimo más simple.

    Soy consciente de que cuando trabajas para un cliente, muchas veces impone tonterías como que la aplicación corra en IIS o usar ese hosting chusquero que tienen hace años pero seguro que podemos hacer algo para poco a poco ir cambiando esa visión. Yo creo que si le enseñamos a alguien lo fácil que es provisionar un Wordpress con Apache, PHP y MySQL con Ansible y lo mucho más rápida que carga una página en una t2.micro respecto a por ejemplo el horrendo 1and1 igual empiezan a cambiar de opinión.

    Pero bueno, entiendo que los clientes muchas veces no se pueden elegir y mucha gente es muy cabezona o simplemente no quiere jaleos :)

    Ricard Clau el 19 de noviembre de 2014 17:36:05

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Compartir en

Publicada el

14 de noviembre de 2014

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Descargas totales de Symfony

1.069.955.393

Ver descargas en tiempo real

Síguenos en @symfony_es para acceder a las últimas noticias.