No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
2 Hrs
11 Min
29 Seg

Traits

21/22
Recursos

Aportes 9

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Creo que a esta clase le faltó explicar cual es el verdadero objetivo de los traits. Los traits vienen a solucionar un problema de limitaciones de la herencia simple en php, es decir, solucionan el hecho de que una misma clase no puede heredar de dos clases padre. Con los traits podemos hacer uso de un conjunto de “rasgos” / métodos sobre varias clases independientes.

perrituu…

Los traits son bastante útiles, los eh utilizado por ejemplo en un service común que se pueda aplicar a diferentes entidades.

Un trait en PHP es una forma de reutilizar métodos en diferentes clases. Funciona como una plantilla que permite incluir métodos en varias clases sin usar herencia. Esto es útil para compartir funcionalidades comunes entre clases que no están relacionadas en una jerarquía de herencia. Los traits no se instancian directamente, sino que deben ser utilizados en las clases que los importan, permitiendo así una mayor flexibilidad y organización en el código.
Creo que el principal uso, para mi es literalmente reciclar metodos comunes no sé como los humanos pueden: respirar, comer, dormir, cosas que haria un animales tambien.. así lo vi yo a partir de esta clase.

Excelente clase y excelente curso. Ahora solo me falta probar nuevamente el Front Controller con el virtual host, porque no lo pude hacer en su momento, repetiré la clase en un futuro cercano!

Mis apuntes de la clase:

Que es un trait

Es una plantilla de métodos que podemos usar en diferentes clases, este puede usarse en varias clases a la vez

Hay que tomar en cuenta que los métodos que definamos en esta plantilla deben poder ser utilizados para todas las clases en los que se vayan a implementar

La definición de un trait es exactamente igual que una clase, como estamos utilizando PSR-4 este debe tener el mismo nombre que el archivo.

// Pet.php

namespace App\Traits

trait Pet{
	public function play(){
		return "I'm playing";
	}
	public function sleep(){
		return "I'm sleeping";
	}
}

Hay que tener en cuenta que este Trait no se puede instanciar al igual que como se hace con una clase

Para la implementación se debe hacer la invocación mediante su namespace y colocar el nombre del trait dentro de la definición de la clase donde se va a utilizar haciendo uso de la palabra reservada “use”

//Michi.php

namespace App\Classes;

use App\Traits\Pet;

class Michi {

    use Pet;

    public function sayMeow() {
        return "Meow! 🐱";
    }

    public function scratch() {
        return "😾";
    }

}
//Perritu.php
namespace App\Classes;

use App\Traits\Pet;

class Perritu {

    use Pet;

    public function bark() {
        return "Woof! 🐶";
    }

    public function drool() {
        return "🐶💧";
    }
}
// index.php

require("vendor/autoload.php");

use App\Classes\Perritu;
use App\Classes\Michi;

$firulais = new Perritu();
$mrmichi = new Michi();

echo $firulais->bark() . "\n";
echo $firulais->play() . "\n";

echo $mrmichi->sayMeow() . "\n";
echo $mrmichi->sleep() . "\n";

Muy buena tu explicación y muy útiles son los traits, podés tener encapsuladas todas las clases de uso frecuente y llevarlas al proyecto que estés desarrollando.
¡¡¡Genial!!!

Muy claro el concepto.
.
Agragar que los metodos obtenidos desde un trait, pueden sobreescribir a los metodos heradados de una clase padre.