PHP7 Un año después


Casi un año después de la RFC con fecha del 24 de Noviembre se puede vislumbrar el inicio de una nueva era para PHP. El salto promete ser cualitativo; nuevos operadores de comparación, mejoras de rendimiento gracias al proyecto PHP Next-Gen de Zend (quien sino), incompatibilidad con viejas herencias que sobrevivieron durante el reinado del actual monarca cerca ya de su fin (PHP5), entre otras sorpresas ya cantadas durante el presente año y esperadas por todos los que amamos este lenguaje y lo hemos visto crecer entre tantos grandes como Java o C++ (salvando distancias y diferencias).

Gracias al voto casi unánime de 34 a favor y 2 en contra PHP7 nace y un año después se encuentra listo para hacer su entrada. Hoy CyberAcademy introduce un poco lo que será el futuro…

Incompatibilidades:

Son muchos los cambios de esta nueva entrega, pero como yo muchos estarán interesados primeramente en qué les afectará la actualización a esta nueva versión a las aplicaciones actualmente en producción. Lo primero que les puedo decir es que si estuvieron ignorando extensivos Warnings que desde versiones anteriores clasificaban como Deprecated, entonces si tienen de que preocuparse (pero todo en esta vida tiene solución)

Algunos de los más interesantes y frecuentes son:

Expresiones regulares

ext/ereg (Obsoleta desde PHP 5.3; reemplazo ext/pcre)

if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) { .. }

Extensión MySQL

ext/mysql (Obsoleta desde PHP 5.5; reemplazo ext/mysqli o ext/pdo_mysql)

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

Encriptado

mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() y mcrypt_ofb() (Obsoleta desde PHP 5.5, reeplazo mcrypt_encrypt y mcrypt_decrypt)

function encrypt($string, $key) {
    $iv = mcrypt_create_iv (mcrypt_get_block_size (MCRYPT_TripleDES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM);
    $enc = mcrypt_cbc (MCRYPT_TripleDES, $key, $string, MCRYPT_ENCRYPT, $iv);

    return base64_encode($enc);
}

Referencia

Asignar nuevo objeto usando referencias (Obsoleta desde PHP 5.3)

$obj =& new ClassName;

Locale

El uso de elementos String como parámetro de la función setlocale() (Obsoleta desde PHP 5.3, reeplazo Constante LC_* correspondiente)

setlocale('LC_ALL', 'es_ES'); // setlocale(LC_ALL, 'es_ES');

Son algunas, las más típicas y que causarán estoy seguro más problemas en el período de transición, pero no son todas, más fueron las funcionalidades obsoletas que fueron removidas.

Nuevas características:

Toda actualización trae nuevos “juguetes” con los que los desarrolladores podemos jugar, es de esperar que una de las mayores actualizaciones del lenguaje no se quedaría detrás:

Tipo de retorno de una función

Recuerdan C++ o Java? Aunque no obligatorio, PHP7 propone una manera intuitiva (pero diferente) que permite al desarrollador especificar que tipo de dato retornará una función específica. Funcionalidad? Control.

function foo(): array {
    return [];
}

//Error:
function get_config(): array {
    return 42;
}

Operador Spaceship (<=>)

Similar a strcmp() o version_compare() en comportamiento pero con la misma semántica que los operadores de comparación anteriormente conocidos. Retornará 0 si ambos operandos son iguales, 1 si el operando izquierdo es mayor y -1 en caso contrario.

Alto Rendimiento

Basado en el proyectp PHPNG (PHP Next-Gen) se espera que las aplicaciones sobre PHP7 posean un rendimiento mucho mayor que sus versiones anteriores. Este proyecto de Zend promete que con solo actualizar mejorarán su rendimiento entre 25% y 70% y todo sin cambiar una línea de código. Ambicioso, prometedor. Promete que será 2 veces más rápido valiéndose de los adelantos producidos por PHPNG, ahora parte de esta nueva entrega.

Que podemos esperar. quizás esa es la pregunta más importante. Muchos son los cambios, es verdad, major version upgrade. Yo les puedo decir que puedo esperar de PHP7, será genial… pero esa es solo mi opinión. Se anuncia su liberación en Octubre del presente año, aunque ya su versión BETA 3 se encuentra a nuestra disposición desde el 6 de Agosto pasado, un pequeño y dulce adelanto del futuro.

Si ya la has probado por favor comparte tus experiencias, sino lo has hecho y tienes dudas pues escríbemos. Próximamente abundaremos más sobre el tema, muchas más características interesantes, mind changing… hoy solo fue la introducción, alimentando la curiosidad de un chico a la espera de su “juguete” favorito.

Latest posts by Leroy Ley (see all)