¿Eres desarrollador web o administrador de una página web dinámica? ¿Tus sitios se ejecutan bajo un CMS desarrollado en PHP como WordPress, Joomla, Drupal, Prestashop o Magento? Entonces tengo buenas noticias para ti: recientemente se ha lanzado la beta de la nueva versión de PHP, PHP 7. Esta nueva versión cuenta con muchas características interesantes a las cuales hemos querido dedicar un artículo. Pero primero, tenemos que aclarar algunos conceptos.
Ten en cuenta que PHP 7 se encuentra todavía en fase de desarrollo, por lo que no debes usarlo en proyectos que ya estén en producción hasta noviembre, cuando se lanzará la versión final y estable. Si por el contrario quieres disfrutar del aroma a nuevo de esta beta de PHP, puedes descargarla en la página oficial de PHP, jugar un rato con él y su entorno, pero siempre en un proyecto que todavía se encuentre en fase de pruebas. Además, para hacer crecer el proyecto, si encuentras algún bug en tu testeo repórtalo a la comunidad para que tengan constancia de él. Si quieres saber cuándo se lanzará la siguiente beta, aquí tienes un calendario del proyecto.
Ahora, vamos a ver las 10 cosas que deberías saber sobre PHP 7.
1. ¿PHP 7? ¿No nos hemos saltado un número?
La versión estable actual es la 5.6. Entonces, ¿por qué se han saltado PHP 6? En realidad, PHP 6 existió y era el sucesor de la actual versión de PHP, pero los problemas en el desarrollo y diversos conflictos en el equipo hicieron que no llegase a buen cauce. Es por eso que decidieron omitir el nombre de PHP 6, y empezaron a desarrollar desde cero una nueva versión digna de este lenguaje de programación a la que llamaron PHP 7.
2. Un nuevo Zend Engine
Zend Engine ha alimentado PHP desde 1999, desde que se presentase la versión número 4 de PHP. Zend (no confundir con el Zend Framework) es un motor de ejecución, de código abierto escrito en C, que interpreta el lenguaje PHP. La versión actual de PHP utiliza Zend Engine II, el cual mejoró la funcionalidad del motor inicial y añadió un nuevo modelo de objetos extensible además de una mejora significativa del rendimiento del lenguaje.
Esta nueva versión de PHP, PHP 7, recibe una nueva versión del motor que viene bajo el nombre de PHPNG (NG = Next Generation = Nueva Generación). Un nombre que, como véis, genera mucho hype.
3. El doble de velocidad
La ventaja más fácilmente reconocible del nuevo motor PHPNG es la mejora significativa del rendimiento. El equipo de desarrollo de PHPNG ha rediseñado el uso de memoria Zend Engine, lo ha optimizado notablemente y ha añadido la compilación JIT que hace que el código se compile cuando se está ejecutando en lugar de antes de la ejecución.
¿Los resultados? Puedes verlos tú mismo en la gráfica proporcionada por Zend un poco más abajo. Mediante el uso de PHP 7 no sólo se ejecutará el código más rápido, sino que también necesitarás menos servidores para tratar con la misma cantidad de usuarios.
Imagenes: Zend.com
4. Facilita el manejo de errores
Por suavizarlo un poco, el manejo de errores nunca ha sido una tarea fácil para los programadores de PHP. El nuevo EngineException te permitirá sustituir los errores fatales por excepciones. Si la excepción no se detecta, PHP seguirá devolviendo los mismos errores fatales como lo hace en la actualidad.
Los nuevos objetos EngineException no vienen de la clase Exception. Esto asegura la retrocompatibilidad y da lugar a dos tipos de excepciones en el manejo de errores: excepciones tradicionales y las del motor.
Para permitir a los programadores atrapar errores tal y como lo hacen otros lenguajes, PHP 7 introduce una nueva parent class bajo el nombre de BaseException.
try{ call_method(null); }catch (EngineException $e){ echo "Excepcion: {$e->getMessage()}n"; }
5. Soporte para sistemas Windows de 64 bits
PHP es un miembro destacado de la LAMP, es decir, su entorno nativo es Linux, pero también es posible ejecutarlo en un sistema Windows. La versión actual de PHP no soporta enteros de 64 bits y archivos grandes, por lo que las builds x64 habían sido consideradas como algo experimental.
PHP 7 cambiará esto, ya que introduce soporte para 64 bits que significa que los enteros de 64 bits y los archivos grandes ya podrán ser aceptados, lo que te permitirá ejecutar con confianza PHP en el S.O Windows de 64 bits en el futuro.
6. Nuevos operadores
Un nuevo operador aterriza en PHP, en otros lenguajes de programación lleva existiendo desde hace mucho tiempo, pero este, debuta en PHP 7. Se trata del operador de comparación combinado, cuya sintaxis es un poco peculiar: <=> Este operador devolverá 0 si los dos operandos son iguales, 1 si el de la izquierda es mayor, y -1 si el de la derecha es mayor. También se le llama operador de comparación de tres vías.
El operador nulo coalescente, cuya sintaxis son dos símbolos de interrogación, ??, se puede utilizar cuando quieres comprobar si existe algo y devolver un valor por defecto, en caso de que no sea cierto. El operador devuelve el resultado de su primer operando si existe y no es nulo, y el segundo operando en cualquier otro caso.
7. Declaraciones Precisas
Anteriormente, en una función, solo podíamos especificar si el parametro enviado era o una clase, o una interfaz, o un callable o bien, un array. Ahora tendremos nuevos tipos para controlar el envío de datos a una función, que son: int, bool, float y string. Es decir, ahora podremos validar si el parametro es un número entero, un decimal, una cadena o bien un booleano. Os pondré un ejemplo para que lo entendáis mejor:
function prueba(int $entero, string $cadena) { echo 'El cliente ' . $cadena .' debe ' . $entero . ' manzanas.'; }
Pero ya no solo con los parámetros, sino que también podemos definir el tipo de lo que se devuelve en una función. Es decir:
function prueba(int $entero, string $cadena) :string { echo 'El cliente ' . $cadena .' debe ' . $entero . ' manzanas.'; }
En conclusión, ahora podremos validar los parametros y los valores retornables entre estos tipos: string, int, bool, float, array, callable, self, parent, closure, class o interfaz. Por lo que, poniendo en práctica el ejemplo anterior...
$resultado = prueba("2", "Pedro"); //Esto no funcionaría en PHP 7 $resultado = prueba(2, "Pedro"); //Esto si funcionaría en PHP 7
8. Las clases anónimas
PHP 7 te permite utilizar clases anónimas, una práctica bien establecida en otros lenguajes orientados a objetos como C# y Java. Una clase anónima es una clase sin nombre, definida en la misma línea de código donde se crea el objeto de la clase.
La sintaxis es la misma a la que estamos acostumbrados en las clases PHP tradicionales, sólo que el nombre se omite. Si las clases anónimas se utilizan bien, pueden acelerar el tiempo de ejecución también del proyecto web. Además, las clases anónimas son excelentes cuando una clase se utiliza sólo una vez durante la ejecución y en casos donde una clase no necesita estar documentada.
var_dump(new class($i) { public function __construct($i){ $this->i = $i; } });
9. Facilita las importaciones desde el mismo namespace
La nueva característica de Group Use Declarations será un milagro para aquellos que queráis importar muchas clases a un mismo namespace. La nueva sintaxis es mucho más simple, hace el código más elegante y fácil de interpretar, y te ahorrará un montón de tiempo a la hora de escribir.
10. Hace limpieza
El principal objetivo de PHP 7 es el de liberar espacio para permitir la mejora de rendimiento, por lo que era necesario deshacerse de muchas funcionalidades en desuso y APIs antiguas que ya no eran compatibles con la mayoría de servidores. Si deseas informarte de esto en detalle, haz clic aquí y aquí.
Todos los elementos eliminados son funciones y APIs deprecated que, de seguro, llevas sin utilizar multitud de tiempo. De todas maneras, debes tener en cuenta que si tienes una aplicación en donde se ejecutan versiones anteriores de PHP, al actualizar a PHP 7 se puede ir todo al garete...
Fuente: hongkiat