La versión PHP 7 se centra principalmente en eliminar la funcionalidad obsoleta en sus versiones anteriores y mejorar la coherencia del lenguaje.
En el momento del lanzamiento de cualquier nueva versión:
- algunas extensiones pueden eliminarse
- algunas extensiones o funcionalidades pueden quedar obsoletas
- algunas otras funcionalidades pueden modificarse
El término "obsoleto" aquí implica que a los programadores se les ofrece una mejor alternativa de una extensión o función en particular para que se desaconseje su uso y, en futuras versiones, esta función o extensión se pueda eliminar por completo.
Esto requiere el uso del documento migratorio al momento de actualizando a una versión más nueva. Este documento puede cubrir lo siguiente:
- Nuevas características y funciones
- Características y funciones obsoletas
- Características y funciones modificadas.
- Cambios incompatibles con versiones anteriores
- Nuevas constantes globales
- Nuevas clases e interfaces
- Cambios en los módulos SAPI
- Extensiones eliminadas y SAPI
- Otros cambios
Estos son los pasos que podemos seguir mientras actualizamos a PHP 7 desde su versión anterior:
Lo primero que hay que hacer es eliminar el se de las extensiones eliminadas. El Migración PHP El documento puede ofrecer bastantes alternativas para estas extensiones eliminadas.
Al momento de presentar PHP 7, las siguientes son las extensiones que se han eliminado:
- mssql
- MySQL
- ereg
- sybase_ct
En segundo lugar, del documento de migración tenemos la información requerida sobre la cual se han modificado todas las funciones. A la hora de introducir una nueva versión también se pueden introducir algunos cambios como por ejemplo:
- cambio en el tipo de devolución
- eliminación de algunos de los parámetros
Por lo tanto, debemos verificar si alguna de estas funciones modificadas está en uso en nuestro sitio web PHP, debemos consultar el documento de migración para conocerlas y realizar los cambios necesarios en consecuencia.
En el caso de PHP 7, algunas de las funciones modificadas son las siguientes:
- Las funciones mktime() y gmmktime() ya no aceptan el parámetro is_dst.
- Las funciones substr() e iconv_substr() devuelven ahora una cadena vacía, donde la cadena equivale a caracteres iniciales largos.
Lo tercero que se debe hacer es intentar eliminar el uso de funciones y extensiones obsoletas, ya que eventualmente se eliminarán en futuras versiones.
En el caso de PHP 7, estas son algunas de las características que están en desuso:
- Constructores de estilo PHP 4: para crear constructores, PHP 4 utilizó los mismos métodos que la clase en la que se definieron, lo cual es una característica obsoleta y se eliminará en el futuro. Entonces, estos nombres de métodos ahora deben ser reemplazados por __construct()
- Las llamadas estáticas a métodos no estáticos también han quedado obsoletas y se eliminarán en futuras versiones.
- La opción salt para la función password_hash() ha quedado obsoleta ya que la función puede generar un salt criptográficamente seguro en caso de que el desarrollador no proporcione el salt.
Lo siguiente, es decir, lo cuarto que hay que hacer, es el tratamiento de los cambios incompatibles con versiones anteriores. Al momento de introducir la nueva versión, se debe consultar el documento de migración para detectar los "cambios incompatibles con versiones anteriores".
Estos son algunos de los cambios incompatibles con versiones anteriores:
- foreach ya no cambia el puntero de la matriz interna
- global ahora acepta solo variables simples
- Las variables variables ya no se pueden utilizar con la palabra clave global.
- Las cadenas hexadecimales ya no se consideran numéricas
Por ejemplo:
<?php
var_dump(is_numeric(“0x123”));
?> El resultado del ejemplo mencionado anteriormente en PHP 7 es:bool(false) - Cambios en la división por cero
Anteriormente, cuando se usaba 0 como divisor para los operadores de división(/) o módulo(%), se emitía E_WARNING y se devolvía false. Ahora ha cambiado al operador de división que devuelve un flotante como +INF, -INF o NAN. El operador de módulo E_WARNING se eliminó y generará una excepción DivisionByZeroError.
Nosotros como uno de los líderes empresa de desarrollo PHP tiene más de una década de experiencia en la ejecución de proyectos de desarrollo web PHP para su clientela global que opera en diversas industrias. Empleamos las herramientas y técnicas más innovadoras para encontrar las soluciones más eficientes para sus problemas comerciales o puede consultar nuestro 'Contratar desarrollador PHP'servicio en el que puede evaluar las habilidades técnicas de nuestros desarrolladores, el enfoque de su proyecto y su trabajo anterior para elegir entre el grupo de talentos más experimentado de la industria.