Introducción
Otra de las funcionalidades de PHP es lo traits como sabemos php no soporta herencia múltiple así que como podemos hacer algo parecido a la herencia multiple en otros lenguajes ?? , la solución para esto es los traits. ¿ Pero qué es y como funcionan ?
¿Qué son ?
"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 Un trait, al igual que las clases abstractas, no se puede instanciar, simplemente facilita comportamientos a las clases sin necesidad de usar la herencia.
en resumen : <ins>Un trait es una agrupación de métodos con una funcionalidad específica para ser reutilizada en diferentes clases.</ins>
¿Cómo funcionan?
los traits con creados como las clases pero en ves de usar la palabra class usamos trait y para invocarlos dentro de nuestro archivo usamos la siguiente sintaxis use nombreDelTrait.
El trait no impone ningún comportamiento en la clase, simplemente es como si copiaras los métodos del trait y los pegaras en la clase.
Un trait no puede implementar interfaces ni extender clases normales ni abstractas.
Creamos una clase base para extender de ella
classbase
{
functionbaseFunction(){
echo"extendiendo de la base";
}
}
Creamos nuestro primer trait
trait compras
{
publicfunctioncomprar()
{
echo"compra realizada con exito";
}
}
Creamos nuestro segundo trait
trait ventas
{
public function vender(){
echo “venta realizada con exito”;
}
}
Esta es nuestra clase principal la cual va a extender de la clase base y a usar los traits creados anteriormente
require(‘base.php’);
require(‘compras.php’);
require(‘ventas.php’);
class inicio extends base {
use compras;
use ventas;
}
$inicio = new inicio();
$inicio->baseFunction();
echo “
”;
$inicio->comprar();
echo “
”;
$inicio->vender();
//echo “
”;
el resultado en pantalla sera el siguiente
extendiendo de la base
compra realizada con exito
venta realizada con exito
**CONCLUSIONES**
podemos ver a los traits como fragmentos de código los cuales pueden ser utilizado dentro de las clases , saltándonos la limitación de la herencia simple.
se pueden utilizar varios traits dentro de una clase como vimos en el ejemplo.
Estos son algunos de los link que utilice como referencia si quieren una explicación mas amplia no duden en visitarlos , ademas esta la documentación oficial.
[https://www.solucionex.com/blog/que-son-los-traits-en-php](url)
[https://diego.com.es/traits-en-php](url)
[https://ayudalaravel.com/trait-en-php/](url)
Curso de Introducción a PHP 2018