use T2 { func2 as newFunc2; func2 as newFunc3; func2 as func3; } } trait T2 { public function func2() { echo "From T2\n"; } } $f = new Foo(); $f->newFunc(); //from T1 $f->func(); //from Foo $b = new Bar(); $b->newFunc(); //from T1 $b->func(); //from Bar $b->func2(); //from Bar $b->newFunc2(); //from T2 $b->newFunc3(); //from T2 $b->func3(); //from Bar