如何在一个版本的库中处理两个版本的依赖


How to handle 2 versions of dependencies in 1 version of the lib

我制作了一个Symfony2包,它可以很好地与senoframeworkextramplle 2.x一起工作

但是从Symfony 2.4开始,使用的senoframeworkextrabundance是3。x和apply()supports()方法签名已经改变。

这迫使我维护我的包的两个版本…

有没有一种方法可以轻松处理这种情况?

有没有我没想到的好办法?

因为在两个"相同"的版本上管理更新和修复是非常繁琐的,并行生活(修改主分支,提交,切换到其他分支,挑选主提交,推送两个版本,每次创建两个版本…)

一般来说,如果你的依赖API发生了变化,你就会制作一个新版本——也就是它的新主版本。

无论如何,如果这两个方法是唯一困扰你的事情,你应该写一个适配器,它将一方面向你的类公开固定的标准API,而另一方面它将知道如何使用不同版本的依赖API的不同/特定API。这样,您就不必维护代码的两个几乎相同的版本,而只需在一个版本中维护适配器。这样,您的代码将依赖于该适配器而不是依赖项本身,因此您可以调整适配器以适应新版本的依赖项,而无需更改其余代码。