2011-08-30 28 views
2

我正在用PHP + Codeigniter构建一个相当大的Web应用程序。当我第一次开始这个项目时,我对PHP-as-a-service的托管提供商PHPFog产品感到兴奋。简单地开发我的应用程序,而不必担心服务器维护,设置,保护等的想法吸引了我。有关将PHP应用程序转换为ROR以供Heroku使用的想法?

但是,我已经有太多的问题与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-as-a-service相同类型的托管,但具有更多的控制权,例如直接访问数据库和自动缩放的能力。仍然是git-push部署到多个服务器而不必手动设置它们的好主意。我唯一不喜欢的是他们的数据中心位于爱尔兰(亚马逊AWS)。然而他们告诉我他们计划在未来3个月内转向美国,并提供美元定价。

+2

忽略脚手架,几乎没有人是真正的RoR开发人员将使用它。 – link664

+0

您是否真的要将整个应用程序重写为另一种语言,因为一个托管服务提供商让您失望?有成千上万的PHP托管服务提供商。你不能找到另一个合适的吗? – bumperbox

+0

@bumperbox,我对应用程序托管作为服务感兴趣。 Heroku和PHPFog提供这个功能。我已经决定采用服务器管理的路线,将它们放入我的机箱并设置服务器,防火墙,构建部署脚本等是不值得的。亚马逊的ElasticBeanstalk,PHPFog和Heroku是我所知道的唯一提供商提供这种托管。 PHPFog是唯一一个用于PHP –

回答

1

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

请意识到,移植一个PHP应用程序ROR或Ruby是不是一件容易的事。你也可以重新开始(毫无疑问,用一种你知之甚少的语言)。你不应该将你的编程语言用于糟糕的托管体验或这个人说的话。用你喜欢的东西。

3

虽然是的,他们都是MVC,是的,Ruby和PHP都是脚本语言,是的,你不应该对你的视图做很多修改,除了把php钩子改成ruby钩子,我想你是在愚弄自己认为这只是一个简单的转换。

作为一种语言,Ruby是远远优于PHP的IMO。它可以让你用更少的代码做更多的事情。如果您要将您的PHP代码转换为Ruby代码,并将每个通话替换为其等效代码,那么您就不会这样做。

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

除此之外,您会希望使用ActiveRecord作为您的ORM,并且应该编写数据库迁移来创建数据库,因此您编写的所有SQL脚本都将几乎没有用处。

如果您决定将应用程序移植到RoR是一种方式,那么我会全心全意地鼓励您花一些时间学习Ruby和Rails,然后重写您的应用程序,就像您从头开始制作Rails应用程序一样。您会惊讶于您能够多快地完成项目并投入运行。

+0

ActiveRecord关注我的性能,使用纯SQL我可以通过任何方式调整我的查询,以改善它们。独立于数据库的解决方案几乎觉得它与控制分离太远以提供最佳性能 –

+0

ActiveRecord是一个非常成熟的ORM,并且网络上有大量关于使用ActiveRecord优化数据库的信息。我认为90%的时间花在你的数据库上的时间很可能是花在创建脚本和查询来处理基本的CRUD功能,你可以使用ActiveRecord进行开箱即用。在说,如果你真的不想使用Rails,你不需要使用ActiveRecord。 – link664

+0

Rails允许您编写纯SQL,但大多数情况并不需要它。 – zetetic

相关问题