我们的项目中有一个小的伪代码场景:
trait headFunction {
protected function doStuffWithParam($param){
return $param;
}
}
trait extA {
use headFunction;
protected function doExtAStuff($param){
...
return $this->doStuffWithParam($param);
}
}
trait extB {
use headFunction;
protected function doExtBStuff($param){
...
return $this->doStuffWithParam($param);
}
}
class classUsingTraits(){
use extA, extB;
...
}
但是有碰撞:
特征方法doStuffWithParam尚未应用,因为在测试中存在与其他特征方法的碰撞....
不幸的是,traits没有扩展选项。
如何在不将 headFunction 移动到 classUsingTraits 的情况下避免碰撞问题 - 是否有任何解决方案?我们查看了PHP文档,但是只有2个特征才有解决方法 - 我们有类似10 +的特征 - ..而且我们不能使用它。
有什么方法可以解决这个问题吗?
谢谢你的帮助!