PHP Traits" triangle"依赖

时间:2017-02-14 11:02:52

标签: php traits

我们的项目中有一个小的伪代码场景:

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 +的特征 - ..而且我们不能使用它。

有什么方法可以解决这个问题吗?

谢谢你的帮助!

0 个答案:

没有答案