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

标签 php ruby-on-rails ruby codeigniter heroku

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

但是,我对 PHPFog 遇到了太多问题,以至于无法放心地信任它来托管我的应用程序。我遇到过这样的情况:我从 git 存储库中删除了一个文件,将其推送到 phpfog 上的远程存储库,但最终该文件并未在我的一台或所有应用程序服务器上实际删除。该服务还应该提供 newrelic尽管收到了大量投诉,但自 8 月 10 日起,该方法就不再有效。他们的客户服务在帮助解决所有这些问题方面还远远不能令人满意。

所以现在我正在考虑替代方案,并且 Heroku引起了我的注意。 Heroku 似乎是一个更加成熟的云应用程序平台。但它不提供 PHP 托管。相反,它提供了 ROR、Java、Node.js 和 Clojure。

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

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

我的第一 react 是“那么 ROR 就像一本图画书?”当我看到应用程序的大块通过简单的“脚手架”之类的东西组合在一起时,我感到怀疑。我不知道该怎么想,除了担心 ROR 牺牲了我习惯使用 php 的一些粒度/控制

编辑2: 我最近发现https://cloudcontrol.com/他们似乎提供与 PHPFog 提供的 PHP 即服务相同类型的托管,但具有更多控制权,例如直接访问数据库和自动扩展的能力。 git-push 部署到多个服务器而无需手动设置它们仍然是个好主意。我唯一不喜欢的是他们的数据中心位于爱尔兰(亚马逊AWS)。不过,他们告诉我,他们计划在未来 3 个月内搬到美国,并以美元定价。

最佳答案

虽然它们都是 MVC,是的,Ruby 和 PHP 都是脚本语言,是的,除了将 php hooks 更改为 ruby​​ hooks 之外,您不需要对 View 进行太多修改,但如果您认为这只是一个简单的转换。

在我看来,Ruby 作为一种语言远远优于 PHP。它允许您用更少的代码做更多的事情。如果您要通过将每个调用替换为等效的调用来将 PHP 代码转换为 Ruby 代码,那么您就不会采用 Ruby 方式。

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

除此之外,您还需要使用 ActiveRecord 作为 ORM,并且应该编写数据库迁移来创建数据库,因此您编写的所有 SQL 脚本将几乎毫无用处。

如果您决定将应用程序移植到 RoR 是正确的选择,那么我衷心鼓励您花一些时间学习 Ruby 和 Rails,然后重写您的应用程序,就像从头开始编写 Rails 应用程序一样。您会惊讶地发现项目启动并运行的速度有多快。

关于php - 关于将 PHP 应用程序转换为 ROR 以与 Heroku 一起使用的想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238646/

相关文章:

php - Eclipse 在启动 Xdebug 调试 session 时停止在 57%

php - 调用数组的成员函数

php - prestashop - 添加新用户或客户的代码

ruby-on-rails - ruby rails : Using Parsely-Rails

ruby-on-rails - 如何使用 :path and :branch 添加 gem 依赖

ruby-on-rails - 在 slim 模板中渲染部分咖啡

ruby-on-rails - rails : checking which controller method was called from within the model

php - 在多个开发环境中使用 Zend 工具

ruby - Sublime Text 3 : How to configure rubocop. sublime 设置中的 yml 路径?

ruby-on-rails - 可以根据当前大小在 Ruby 中删除 http 请求吗?