Con PHP 7 se incluirán algunas novedades, está el más que conocido operador "tie fighter" (<=>) y otras peculiaridades que harán de la vida del programador un paraíso terrenal, o al menos un camino de piedras afiladas más mullidito.
Para los phperos en general, trabajar con objetos es algo cotidiano, algo con lo que nos sentimos más o menos a gusto. Muchas veces nos toca crear una clase específica para un caso concreto, que extienda la funcionalidades de otra clase. Estas clases son conocidas mediante un nombre descriptivo (en algunos casos al menos), pero ¿existe la posibilidad de hacerlas anónimas? Con PHP 7 la respuesta es sí.
El artículo lo podéis ojear (en inglés) desde aquí el tutorial de Dave Smith, muy bien explicado. En resumen se trata de definir una clase anónima que permita agregar funcionalidad directamente a un objeto. Es decir, la clase se define y se asigna directamente. El sentido está, lógicamente, en extender estas definiciones para evitar tener que definir una estructura compleja en un proceso de código (más cuando se asigna directamente al objeto, imaginad lo que esto conllevaría para un problema complejo).

Un poco más

La estructura sería como sigue, el "$objeto" es la variable que contendrá la definición de la clase directamente, similar a las definiciones de Javascript para hacernos una idea:

$objeto  =  new class( 'argumento' )::n::{::n::::t::public $propiedad;::n::::n::::t::public function __construct( $argumento )::n::::t::{::n::::t::::t::$this-::gt::propiedad  =  $argumento;::n::::t::}::n::};

Mientras que la clase tradicional requiere un nombre

class nombreClase::n::{::n::::t:://la chicha va aquí::n::}

la clase anónima no requiere de ese nombre y define al objeto directamente en la asignación.

Entonces, ¿para qué sirve?

Bien, la respuesta es sencilla. Si tenemos una estructura de clases bien definida, pero en un momento determinado requerimos modificar una propiedad o un método, con la sintaxis actual necesitaríamos definir una clase que extienda a la que corresponda, instanciarla y listo (vale, esto es muy burdo, pero me vale para que se entienda).

Con las clases anónimas, directamente se puede extender en la definición y nos ahorramos (en el caso que lo requiera) guarrear la estructura de clases. Para los más puristas, esto no deja de ser una aberración, dado que se podría perder un poco la visión global del código, pero que, al permitir extends, interfaces y traits, puede resultar una funcionalidad muy potente a la hora de crear nuestro código.

Espero que sirva de ayuda para empezar a entender la nuevas funcionalidades de PHP 7. Si alguna cosa no ha quedado clara o he cometido algún error, por favor deja tu comentario. Saludos!

El comentario será validado antes de mostrarse.