La documentación de PHP define los Traits de la siguiente forma:
"Los traits (rasgos) son un mecanismo de reutilización de código en lenguajes de herencia simple, como PHP. El objetivo de un trait es el de reducir las limitaciones propias de la herencia simple permitiendo que los desarrolladores reutilicen a voluntad conjuntos de métodos sobre varias clases independientes y pertenecientes a clases jerárquicas distintas."
Si usas PHP 5.4.0 o superior, puedes disfrutar de esta fantástica metodología de reutilización de código.
Un ejemplo:
Tenemos dos clases y cada una hereda de otra clase diferente.
class EjemploUno extends BaseUno
{
...
}
class EjemploDos extends BaseDos
{
...
}
Imaginaros que en estas dos clases tuvieran métodos comunes, no podemos heredar de otra clase ya que solo podemos heredar de una. Por lo tanto tendríamos que implementar en cada clase los métodos necesarios sin poder reutilizar nada.
¡Gracias a los Trails podemos solucionar este problema!
Imaginemos que las clases EjemploUno y EjemploDos implementan el patrón Singelton.
Podemos crear un Trait que implemente el patrón Singleton.
trait Singleton {
private static $instance;
public static function getInstance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
}
Ahora solo tenemos que usar el trait en nuestras clases reutilizando la implantación del Singelton.
class EjemploUno extends BaseUno
{
use Singleton;
...
}
class EjemploDos extends BaseDos
{
use Singleton;
...
}
Esto ha sido una pequeña introducción a este mecanismo de reutilización de código, si os pica el gusanillo y queréis saber más, podéis consultar la documentación oficial.
Sean felices :)