将遗留应用程序迁移到 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的主要内容,如果未能解决你的问题,请参考以下文章
如何将 iOS 应用程序连接到 Symfony2 RESTful Webservice?
如何将遗留的 Dojo Toolkit 代码转换为 AMD?
如何将 Spring Boot 项目迁移到旧 Spring MVC 项目。面临的问题,如何在遗留 Spring MVC 项目中读取 application.properties 文件