<?php
 // === Trait TraitControl ===
 trait TraitControl {
  public function AfficheAdresse() {
   echo get_called_class().'-Accès à l\'entreprise par le: ';
   echo $this->AdresseAcces.PHP_EOL;
  }
 }
 // === Trait TraitAcces ===
 trait TraitAcces {
  private $AdresseAcces;
  public function SetAdresse($ad) {
   $this->AdresseAcces=$ad;
  }
  use TraitControl;
 }
 // === Classe Personnel ===
 class Personnel {
  use TraitAcces;
 }
 // === Classe Livraison ===
 class Livraison {
  use TraitAcces;
 }
 // === Programme ===
 // Création salarié et affichage porte d'accès
 $UnSalarie = new Personnel()         ;
 $UnSalarie->SetAdresse("21 rue Blum"); 
 $UnSalarie->AfficheAdresse()         ; 
 // Création livraison  et affichage porte d'accès
 $UneLivraison = new Livraison()              ;
 $UneLivraison->SetAdresse("Quai de numéro 2"); 
 $UneLivraison->AfficheAdresse()              ; 
?>