将一个非常大的php代码库迁移到rails的理想选择是什么?

时间:2011-02-28 11:58:00

标签: php ruby-on-rails

我只是征求意见/建议。就像我们有非常大的PHP代码库一样,这就是我的意思:

超过500张桌子 超过4000个文件 - 动作,显示&模板。 超过1,000,000行代码 - 这个软件已经超过8年了。

到处都有这么多被弃用的,重复的代码,还有很多黑客。

我希望能够继续运行该软件,而部分软件正在迁移到rails。

因此它将以混合模式运行,即同时运行PHP和rails。已经迁移的部分软件将开始使用Rails版本。

我想我的想法是:

  1. 迁移到Git
  2. 我想剩下500多张桌子。
  3. 找到一种方式让PHP和rails互操作?
  4. 嚼一个显示器&管理屏幕一次?
  5. 在前端工作?

2 个答案:

答案 0 :(得分:2)

我希望这样的事情会发生变化。无论如何,让我试着给出一些建议。

  1. 构建两个基本的“可运行”应用程序。
  2. 确保两个应用程序都可以访问同一个数据库,相同的会话源,相同的缓存等。在这里,您必须确保您的数据源与您的应用程序兼容。例如:您可以将用户会话迁移到数据库。
  3. 构建一个额外的路由组件(以mod_rewrite,PHP或任何你喜欢的方式)开始将几个页面路由到Ruby应用程序而不是PHP。彻底测试它。以这样的方式构建路由器,使其可以在开发模式和生产模式下运行。
  4. 慢慢开始向路由器添加路由,以便在Ruby应用程序中添加组件。
  5. 完全迁移后,将默认路由更改为Ruby应用程序。您现在可以开始使用特定于Ruby的数据源。

答案 1 :(得分:2)

虽然我很少相信从PHP迁移到Ruby会让你的生活变得更轻松,但我认为在当前代码库中映射出依赖关系是非常有力的。

  • 哪些PHP脚本是执行的入口点(即直接映射到URL)
  • 其他脚本包含哪些PHP文件(以及它们是哪些)
  • 哪个模板由哪个URL
  • 使用
  • 哪些脚本访问哪些表

这至少可以让你将练习分成不连续的块。请注意,在某些情况下,将PHP / DB重写为临时措施而不是直接转到Ruby可能是个好主意。

  1. 如果可以合并多个数据库表 - 然后执行此操作 - 并在根据替换表命名的结果表上创建视图。

  2. 如果需要,尝试在其自己的目录中将每个入口点PHP脚本重新实现为“index.php” - 并始终通过目录引用脚本。这样你就可以透明地开始替换用不同语言编写的组件。