3
两个组件提供相同的功能,但依赖关系不同
我正在使用Zend Framework 1和Doctrine2作为ORM层在PHP中构建应用程序。一切进展顺利。现在,我偶然发现ZF1和Doctrine2都附带并依赖于它们自己的缓存实现。我对两者都进行了评估,虽然每个人都有自己的优点和缺点,但就我的简单需求而言,它们都不比其他人优越。这两个库似乎都是针对各自的接口而不是针对其实现编写的。 我之所以认为这是一个问题,是因为在应用程序的引导过程中,我必须配置两个缓存驱动程序-每个都有自己的语法。这样很容易造成不匹配,因此,与缓存后端建立两个连接的效率很低。 我正在尝试确定最佳的前进方式,并欢迎您可能提供的任何见解。 到目前为止,我想到的是四个选择: 不执行任何操作,请接受存在两个提供缓存功能的类。 创建一个Facade类,将Zend的接口粘贴到Doctrine的缓存实现上。 选项2的另一种方法-创建一个Facade,以在Zend Framework后端上映射Doctrine的界面。 使用多接口继承创建一个接口来统治所有接口,并祈祷不存在任何重叠(即:如果两个都有“保存”方法,由于PHP的原因,它们将需要以相同的顺序接受参数)缺乏适当的多态性)。 哪个选项是最佳选择,或者我不知道有没有“以上所述”变体?