Preparar la llegada de PHP6 – parte I

Hay una serie de artículos interesantes en la revista canadense PHPArchitect en 2008 sobre lo que se tiene que hacer para migrar de PHP4 a PHP5. Sin embargo, el último artículo de la serie (en la publicación de Julio 2008) trata de unas cosas que se tienen que hacer para prepararse al PHP6.

El tema más importante de esta migración, creo, es el téma del E_STRICT. E_STRICT es un nivel de error de PHP (tal como E_ERROR, E_WARNING, E_PARSE, E_NOTICE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_STRICT y E_RECOVERABLE_ERROR). En PHP 5.3, se agregó el nivel E_DEPRECATED, que señala cuando una construcción de código esta considerada como vieja/fea/mala y más que todo abandonada (en peligro de ser quitado en las próximas versiones).

Bueno, para regresar a la preparación de PHP6, el tema es que, en esta versión, el E_STRICT es considerado como parte del E_ALL. Lo que quiere decir que todas las cosas que son consideradas como no strictamente definidas generan errores. Es uno de los cambios más importantes del paso de 5 a 6, y uno de los que va a generar a la vez muchos problemas para desarrolladores flojos, y una gran mejora en la calidad del código de aplicativos PHP.

En PHP6, entonces, E_STRICT es parte de E_ALL. Pero no es así para versiones anteriores. Así que, si uno quiere prepararse a la migración a PHP6, una cosa que puede hacer es definir, dentro de php.ini, su error_reporting en php.ini como E_ALL | E_STRICT, para que tome en cuenta E_STRICT *también*. Esto “simulará” un reporte de erores de PHP6 dentro de PHP5.

Suele indicar que estas constantes no se pueden configurar así en la configuración de un VirtualHost de Apache. Si se ponen ahí, uno tiene que usar los valores numéricos de estos constantes.