Este documento introduce PHP 5.4 y resume sus características clave. PHP 5.4 introdujo mejoras de rendimiento, correcciones de errores, y nuevas características como sintaxis corta para arreglos, desreferenciación de arreglos, soporte para manejadores de sesión orientados a objetos, type hinting para callables, un servidor web interno, y traits para reutilización de código. PHP 5.4 también eliminó opciones obsoletas como register_globals y proporcionó cientos de mejoras a funciones existentes y extensiones.
4. PHP 5.4.0
• Versión 5.4.0 - 1 de Marzo 2012
• Cambios importantes
• PHP 5.2 deja de tener soporte
• Última versión
• 5.4.8
• 18 de Octubre
PHP 5.4
5. Cosas Eliminadas
• Opciones en php.ini
• register_globals y register_long_arrays
• safe_mode y sus opciones ini
• y2k_compilance
• define_syslog_variables
• Funciones
• session_is_registered,session_register,session_unregister
• Opciones
• putenv(TZ=“”)
• UTC es usado
• magic_quotes_gpc y sus primas ahora regresan false
PHP 5.4
6. Mejoras
• Cientos de mejoras en muchas funciones
• hex2bin()
• number_formant()
• unserialize
• Mejoras en las extensiones principales
• Mejoras en el Zend Engine
• El motor del PHP
• Optimización de memoria
• Desempeño
• Muchisimos Bugs corregidos
PHP 5.4
7. Mentiras verdaderas
• PHP 5.4 es más rápido
• Uso de memoria reducido hasta un 25%
• Aplicaciones de la vida real pueden ser 5-20 % más
rápidas
PHP 5.4
9. Sintaxis corta en arregos
• Ya no es necesario el constructor array()
$array = [“foo” , “bar” , “baz” ];
$array = [1 => “hola”, 32=> “adios” ];
PHP 5.4
10. Desreferenciación de Arreglos
• Referencia al resultado de una función o método
• Antes
$strExploded = explode (“1,2,3”,”,”);
$segundo=$strExploded[1];
• Ahora
$segundo = explode (“1,2,3”,”,”)[1];
PHP 5.4
11. Desreferenciación de Arreglos
• Antes
function miArreglo() {
return array(1,3,42);
}
$miArreglo=miArreglo();
$elementoArray=$miArreglo[0];
• Ahora
function miArreglo() {
return array(1,3,42);
}
$elementoArray=miArreglo()[0];
PHP 5.4
12. Soporte para Session handler OO
• Antes podiamos usar cualquier funcion y
registrabamos con session_set_handler()
• Ahora podemos crear una clase que implemente la
interfaz SessionHandlerInterface y registrar el objeto
PHP 5.4
13. Nuevo Type-Hinting
• El Type-Hinting ahora puede usar callable
function miFuncion(callable $func) {
$func(1,2,3);
}
PHP 5.4
14. Webserver interno
• Tu propio webserver para desarrollo
• Rápido y Sencillo
• Puedes
• Especificar host y puerto
• Archivo de configuración ini a cargar
• Document root
yo@miservidor> php –S miservidor:8080 –t /misproyectos –c php.ini
PHP 5.4
15. Traits
• Mecanismo de reutilización de código
• Trata de reducir limitaciones de herencia simple
• Evitar herencia múltiple
• No se instancian directamente se usan en alguna
clase
• Copy/paste de funcionalidad
PHP 5.4
16. Trait básico
trait Saludo {
public function hola() {
echo “Hola”;
}
}
trait Lugares {
public function ciudad($ciudad) {
echo “ “.$ciudad;
}
public funciton mundo() {
echo “ Mundo”
}
}
Class Miclase {
use Saludo,Lugares;
}
$obj=new Miclase();
$obj->hola();
$obj->mundo();
PHP 5.4
17. Características Traits
• Los métodos pueden tener alias
class C {
use English,Spanish {
English::greeting insteadof Spanish;
Spanish::greeting as private hola;
Spanish::farewell insteadof English;
}
}
• Pueden tener propiedades
• Pueden tener métodos abstractos
• Traits pueden usar Traits
PHP 5.4
18. Reglas Traits
• Puedo usar varios Traits separadolos por comas
• Los miembros heredados de una clase son
sustituidos por miembros insertados desde un Trait
• Los miembros insertados desde el Trait son
sustituidos por los de la clase actual
• Si dos Traits insertan 2 métodos con el mismo
nombre se produce un error fatal
PHP 5.4