2016-11-16 60 views
0

我面临着重构和增加新的功能到遗留PHP的Web“应用程序”的挑战的最佳方式,它由大约788 PHP脚本,它们没有什么文件夹结构,它们大部分都是脚本,它们在同一个文件中包含JavaScript,PHP,HTML和CSS代码,这些脚本坚持并使用来自3种不同数据库类型(MSSQL,MYSQL和DB2)的数据,其中身份验证是基于会话的它是基本的PHP,还有一些页面使用纯html和ajax与php脚本进行通信,不用说没有类定义,大多数情况下甚至没有功能。什么是现代化或重构遗留PHP应用程序

我的目标是将其转化为一个更易维护的应用程序,最有可能使用我熟悉的symfony组件,引入HTTP请求抽象,路由以及可能的MVC,还将代码重构为可用类并实现自动加载作曲家利用第三方库。

坦率地说,我脑海中唯一的选择就是把它全部抛开,开始一个新项目。

+1

“坦率地说,我脑海中唯一的选择就是把它全部丢掉,开始一个新项目。”听起来像是对我的计划 – 2016-11-16 03:14:53

+1

我只是想确定可能没有其他可行的选择,甚至尝试阅读它也是一种痛苦。 –

+2

好吧,没有魔法“修复狗屎php”的功能。 – 2016-11-16 03:39:53

回答

1

即使重写一切似乎是最好的主意,有时它是不是最好的商业选择,可能是十分困难的巨大的代码库。

一个解决办法是引入Symfony的项目,并开始重构通过模块模块,但将主要面临以下问题:

  • Web服务器整合:如何开始一起遗留应用程序symfony应用程序(与例如自定义nginx的位置)的2个应用程序之间
  • 共享会话,但symfony中已经拥有的东西bridge a legacy Application with Symfony Sessions
  • 有一个一致的网页设计,这是许多工作,但不是在技术上很难
  • 我猜很多其他问题
+0

我实际上意识到重写的业务缺陷,我遇到的最大缺陷之一是使用会话桥将需要不会在遗留应用程序中结束会话,否则它不能正常工作,我目前正在重构一步一步增加稳定性,因为它计划将它移动到另一台服务器上,并且有许多依赖于系统的路径,并且旧的mysql_connect将被PDO所取代,我的计划会放入一些工作,使其不太容易一旦我对业务有了更多的了解,就会分崩离析,然后再创造新的东西。 –

+0

我会说这个项目很小,但主数据库可能需要重新构建,因为到处都有未使用的字段和表。 –

+0

每次我面对同样的问题时,我最终都是通过模块重写遗留代码模块。除了在遗留代码库中集成SF2或其他框架之外,您还有其他选择:按应用程序(前端/后端)分割,使用微服务,创建干净的库。 – LFI

相关问题