Les traits
En PHP, les trait sont des portions de code, qui sont réutilisables par plusieurs classes.
Pour déclarer un trait :
trait SayHello {
public function greet(string $name) : string {
return "Hello $name!"
}
}
Pour l'utiliser dans une classe on utilise le mot clé use:
class Character {
use SayHello;
// ...
}
Un cas d'application pratique : un trait qui permet de debug une classe :
trait Debug {
public function print() : void
{
// ici on récupère toutes les méthodes d'une classe
$methods = get_class_methods($this);
// je parcours toutes les méthodes
foreach($methods as $method)
{
// je vérifie si le nom de la méthode contient le mot get
if(str_contains($method, "get"))
{
// j'echo le retour de la méthode
echo $this->$method() . "<br>";
}
}
}
}
Je l'utilise dans ma classe :
class Test {
// j'utilise mon trait
use Debug;
public function __construct(private string $firstName, private string $lastName)
{
}
public function getFirstName() : string
{
return $this->firstName;
}
public function setFirstName(string $firstName) : void
{
$this->firstName = $firstName;
}
public function getLastName() : string
{
return $this->lastName;
}
public function setLastName(string $lastName) : void
{
$this->lastName = $lastName;
}
}
Et quand je teste :
$test = new Test("Mari", "Doucet");
$test->print();
// Mari
// Doucet
Et ce trait peut être use par n'importe quelle classe que je crée du moment que je nomme bien mes getters.
28 November 2025