将遗留应用程序迁移到 Symfony2

Posted

技术标签:

【中文标题】将遗留应用程序迁移到 Symfony2【英文标题】:Migrate Legacy Application to Symfony2 【发布时间】:2014-12-09 06:41:28 【问题描述】:

我有一个带有自定义框架的应用程序,它在 7 年前就已经很老了,使用的是旧技术和设计模式。

我们正面临问题。 我们正在使用 DAO 层来访问数据对象,并且由于业务需求变得如此复杂,DAO 不再能够满足业务需求,我们正在考虑使用 Symmfony2 和 Doctrine2。

但问题是: 应用程序真的很大。 超过 7 年的开发和添加功能。 大约 11.500 个文件和文件平均 1500 行。

我知道这不是一件容易的工作,但我确信有一种方法可以迁移或至少暂时使用 Doctrine 而不会损害遗留代码。

请指教。 谢谢。

【问题讨论】:

【参考方案1】:

您的问题没有简单的答案。处理遗留代码总是很困难。

如果可能,您应该将 Symfony 包裹在您的应用程序周围。在您的应用程序周围实现命令或外观模式,并让 Symfony 控制器调用这些类。

尝试使用存储库模式分离您的 DAO 访问层。不是 Doctrine 存储库,而是特定于您的应用程序的自定义存储库。当您将存储库与应用程序的接口分开时,您可以对它们逐一进行原则实现。

值得考虑将您的应用程序与 Symfony 分离,这样您将来就不会遇到此类问题。

另外,如果可以的话,尝试编写尽可能多的测试,这将使您将来更容易重构。

我写了一篇博文,里面有一些关于如何从框架here 中分离出来的技巧。相同的模式适用于存储库。

【讨论】:

以上是关于将遗留应用程序迁移到 Symfony2的主要内容,如果未能解决你的问题,请参考以下文章