如何在1个版本的lib中处理2个版本的依赖项

时间:2014-05-04 13:15:33

标签: php symfony

我制作了一个Symfony2软件包,适用于SensioFrameworkExtraBundle 2.x

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

这迫使我维护我的捆绑包的两个版本...只是因为这个。

有没有办法轻松应对这种情况?

我有没有考虑过一些不错的解决方法?

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

1 个答案:

答案 0 :(得分:0)

好吧,一般来说,如果你的依赖关系API发生变化,你确实会制作一个新版本 - 也就是它的新主要版本。

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