xxxxxxxxxx
trait TraitA {
public function commonFunction() {
echo "TraitA's common function\n";
}
}
trait TraitB {
public function commonFunction() {
echo "TraitB's common function\n";
}
}
class MyClass {
use TraitA, TraitB {
TraitA::commonFunction as functionA; // Rename TraitA's commonFunction
TraitB::commonFunction insteadof TraitA; // Prevent TraitB's commonFunction from conflicting with TraitA
}
public function myCustomFunction() {
echo "My custom function\n";
}
}
$obj = new MyClass();
$obj->functionA(); // Calls TraitA's commonFunction via alias
$obj->commonFunction(); // Calls TraitB's commonFunction via default
$obj->myCustomFunction(); // Calls MyClass's custom function