Les traits PHP

par

dans

Traits

Les traits permettent de déporter du code dans une classe afin d’en favoriser et faciliter la ré-utilisabilité. Un trait est une classe indépendante, qui ne s’instancie pas et qui n’étend ni n’implémente aucune autre classe mais qui permet de créer des méthodes qui pourront être utilisées dans différentes classes.

Un trait s’écrit comme une classes mais avec le mot-clé trait. Pour qu’une classe puisse utiliser les fonctions d’un trait elle doit contenir le mot-clé use suivi du nom du trait. Une classe peut utiliser plusieurs traits.

Un trait, qui est donc une classe, peut tout à fait utiliser lui-même d’autres traits.

// Créer un trait
trait checkErrors()
{
    function funcName()
    {
 
    }
}
 
// Utiliser le trait dans une classe
class User
{
    use checkErrors;
}
 
// Deux façons d'utiliser plusieurs traits
class Company
{
    // Avec la virgule
    use trait1, trait2;
 
    // En plusieurs lignes
    use trait3;
    use trait4;
}

Redéfinir la visibilité des méthodes d’un trait

Une classe peut se permettre de modifier la visibilité des méthodes contenues dans un trait. Voici la syntaxe :

trait checkErrors()
{
    public function funcName()
    {
 
    }
}
 
class User
{
    use checkErrors { checkErrors as private; }
}

Propriétés et constantes

Un trait peut définir des propriétés. Une classe l’utilisant ne pourra pas définir une propriété ayant le même nom sauf si la visibilité, le type et la valeur par défaut sont identiques.

Un trait ne peut en revanche pas déclarer de constantes.