¿Qué es un trait en PHP?

PHP tiene una limitación importante en relación a la herencia de clases:

Una clase no puede heredar mas que de una única clase.

Imagina que tienes una clase Vehiculo que tiene el método mover() que te interesa usar en tu clase Coche.

Pues harías:

class Coche extends Vehiculo {}

Pero ahora imagínate que hay unos métodos que te interesan en una clase llamada Carroceria. No puedes hacer algo como ésto:

class Coche extends Vehiculo, Carroceria {}

Porque, como he dicho, en PHP no podemos heredar métodos más que de una única clase.

¿Cómo se resuelve esta limitación?

¿A que lo has adivinado? ¡Con un trait!

¿Y qué es un trait?

Pues es sencillamente un tipo de clase especial que nos permite reutilizar código.

Por ejemplo podemos crear un trait que tenga el metodo mover():

trait MovimientoTrait {
    private function mover() {}
}

Y podemos usar este método en nuestra clase:

class Coche {
     use MovimientoTrait;
}

Y ya podemos usar el método mover() como si fuera de la clase Coche.

Además, podemos meter tantos traits como queramos en nuestra clase Coche. No tenemos ninguna limitación.


¿Sabes lo que es el reto de PHP?

He creado el PHP Journey, una plataforma para que recibas de forma gratuita un email cada día con una pequeña perla de sabiduría de PHP y una pregunta que deberás responder.

Cada día pones a prueba tus conocimientos y aprendes algo nuevo.

Apúntate aquí:

https://urlantools.urlanheat.com/newsletter/php-journey/subscribe


1 comentario en «¿Qué es un trait en PHP?»

Deja un comentario