关于将PHP应用程序转换为ROR以便与Heroku一起使用的想法


Thoughts on converting PHP app to ROR for use with Heroku?

我正在用PHP + Codeigniter构建一个相当大的web应用程序。当我第一次开始这个项目时,我对php即服务的托管提供商PHPFog产品感到兴奋。简单地开发我的应用程序,而不必担心服务器维护、设置、安全等问题,这种想法吸引了我。

然而,我在PHPFog上遇到了太多的问题,以至于不能放心地信任它来托管我的应用程序。我曾经遇到过这样的情况:我从git存储库中删除了一个文件,将它推送到phpfog上的远程仓库,结果在一个或所有应用服务器上,该文件实际上并没有被删除。该服务还应该为应用程序监控提供newrelic,然而这只短暂地起了作用,并且自8月10日以来一直没有起作用,尽管有许多投诉。在帮助解决所有这些问题方面,他们的客户服务远不能令人满意。

所以现在我在考虑其他选择,而Heroku引起了我的注意。Heroku似乎是一个更加成熟的云应用平台。但是,它不提供PHP托管。相反,它提供了ROR、Java、Node.js和Clojure。

对于有很多PHP(和Codeigniter框架)经验的人来说,学习Ruby + Rails并重新构建应用程序有多困难?两者都以MVC模式组织代码,所以我希望这意味着我的视图只需要修改它们的钩子来匹配ruby的语法。我已经设计了我的数据库和所有的SQL查询访问我需要从我的模型在CI的数据。你们怎么看?

编辑1:所以我看了这个视频作为ROR开发的介绍:http://www.youtube.com/watch?v=Gzj723LkRJY

我的第一反应是"所以ROR就像一本着色书?"当我看到大量的应用程序通过简单的"脚手架"组合在一起时,我持怀疑态度。我不知道该怎么想,只是担心ROR会牺牲一些我习惯的php

的粒度/控制。

编辑2:我最近发现https://cloudcontrol.com/他们似乎提供了PHPFog提供的相同类型的php即服务的托管,但是有更多的控制,比如直接访问数据库和自动伸缩的能力。使用git-push来部署到多个服务器,而无需手动设置,这仍然是一个很棒的想法。我唯一不喜欢的是他们的数据中心设在爱尔兰(亚马逊AWS)。然而,他们告诉我,他们计划在未来3个月内转移到美国,并以美元定价。

虽然是的,他们都是MVC,是的,Ruby和PHP都是脚本语言,是的,你不应该需要太多的修改你的视图除了改变PHP钩子到Ruby钩子,我认为你是在欺骗自己,如果你认为这只是一个简单的转换。

Ruby作为一种语言,在IMO上要比PHP优越得多。它允许您用更少的代码做更多的事情。如果您要将PHP代码转换为Ruby代码,将每个调用替换为等效的调用,那么您就不会使用Ruby方法。

最重要的是,Rails作为一个框架比CodeIgniter成熟和强大得多。它将为您提供更大的灵活性和基于约定的帮助,使您编写的代码与使用CI时大为不同。

除此之外,你会想要使用ActiveRecord作为你的ORM,应该写数据库迁移来创建你的数据库,所以所有那些你写的SQL脚本将是非常无用的。

如果你决定将你的应用程序移植到RoR上,那么我衷心地鼓励你花点时间学习Ruby和Rails,然后重写你的应用程序,就像你在从头开始做一个Rails应用程序一样。你会惊讶地发现你可以这么快地启动并运行一个项目。

在这个问题变成典型的Ruby vs PHP讨论之前,在您开始(几乎)不可能完成的任务之前,您应该考虑其他托管提供商。有许多可供选择,其中一些提供您正在寻找的"PHP即服务"。

  • http://vps.net/
  • http://mediatemple.net/
  • http://rackspace.com/

请认识到将PHP应用程序移植到ROR或Ruby并不是一件容易的事。你不妨重新开始(用一门你所知甚少的语言,毫无疑问)。你不应该把你的编程语言建立在糟糕的托管经验或那个家伙所说的基础上。

这篇文章是你必须读的

http://www.oreillynet.com/ruby/blog/2007/09/7_reasons_i_switched_back_to_p_1.html