La nueva versión de PHP, PHP 5.4.0, tiene prevista su salida el día 2 de Febrero de 2012, después de muchos meses de desarrollo. Manuel Lemos hace un análisis interesante sobre las nuevas funcionalidades en PHPClasses que traduciré detalladamente en este Post.

Para probar las nuevas características puedes compilar tu propia versión de PHP siguiendo el Post Instalación de PHP en Linux.

Traits

PHP no soporta herencia múltiple, como muchos lenguajes modernos (quién la necesita); esto quiere decir que no es posible crear una clase que herede el comportamiento de varias clases, aunque desde PHP 5 es posible implementar varios interfaces.

El problema de heredar de varias clases o implementar varios interfaces es que es fácil que las clases que heredan se llenen de métodos que en realidad no se vayan a utilizar.

Un trait dan una alternativa muy simple. Un trait se define como una clase o un interface justamente con las funciones (métodos) que realmente se van a utilizar.

Lo siguiente es un ejemplo sacado directamente del documento RFC de PHP:

<?php

  trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
  }

  class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
  }

  class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
  }

 ?>

Servidor propio de desarrollo

La mayoría de los desarrolladores de PHP utilizan un entorno LAMP (Linux + Apache + MySQL + PHP) para sus aplicaciones. Suelen utilizar Apache como servidor pese a que últimamente la tendencia en producción es a utilizar otro software más eficiente.

A primera vista Apache puede parecer algo complicado de configurar para los programadores noveles y suelen optar por paquetes integrados como XAMPP, que resuelven el problema de la instalación y la configuración a golpe de clic.

PHP 5.4.0 añade una característica fundamental para los desarrolladores que no desean perder mucho tiempo configurando su sistema, un servidor web propio. Esta funcionalidad, que funciona muy bien en otros lenguajes ligeros como Ruby on Rails, agiliza mucho el desarrollo.

Para lanzar el servidor web lo único que hay que hacer es ejecutar un simple comando PHP y se lanzará la aplicación en un puerto determinado, accesible desde el navegador.

Aquí hay un ejemplo de como funciona el comando:

 $ php -S localhost:8000

Notación binaria para valores enteros

Los valores literales se pueden representar en PHP mediante su notación en Decimal, Hexadecimal u Octal. A partir de PHP 5.4.0 también se pueden representar estos valores como binarios.

Hay que tener en cuenta los prefijos para las distintas notaciones. Para notación Octal se utiliza un ’0′ como prefijo, así, el número 010 representaría el número 8 en Octal. En Hexadecimal habrá que añadir ‘ox’. El valor 0×12 representa el número 18 por ejemplo. Y por último, un valor binario debe llevar como prefijo un ’0b’. El número 5 puede ser representado como 0b101.

Características eliminadas

Algunas características marcadas como deprecated han sido eliminadas en esta nueva versión. La más comentada es sin duda magic quotes, que se elimina del archivo de configuración php.ini. Se utilizaba para eliminar caracteres extraños introducidos a través de un formulario y que podían malear consultas SQL mediante técnicas de SQL Injection. El problema real es que el uso de esta característica condicionaba otras funciones de PHP que podían fallar si no se controlaba si magic quotes estaba en uso o no.

La norma general de los desarrolladores de PHP es que la seguridad del sistema de información debe ser proporcionada por el Administrador de Sistemas y no por el desarrollador de aplicaciones, por ello también se marcaron como deprecated funciones como safe_mode. Si es necesario controlar los caracteres para hacer una consulta SQL correctamente es mejor utilizar funciones de la propia base de datos como  mysql_real_escape_string().

About these ads