【问题标题】:New Project: Ruby on Rails or Symfony2 ( or other framework)新项目:Ruby on Rails 或 Symfony2(或其他框架)
【发布时间】:2011-08-16 00:40:08
【问题描述】:

我即将开始一个新项目,但我不知道要使用哪种语言/框架。我一直是专业的 PHP 程序员,但它没有达到这个项目的规模。我玩过 RoR,到目前为止我印象非常深刻。目前,两个主要的候选者是 RoR 和 Symfony2。

我与 RoR 的主要问题: - 我不知道红宝石,或者我几乎不知道。我可以阅读它,但在编写代码时遇到了困难。 - 我读过关于它速度慢的投诉,而且它似乎只是在 CLI 上很慢。

我对 Symfony2 的主要挂断: - 几乎没有它的文档。 Symfony1.x?当然..但不是symfony2 - 支持也很少。他们网站上的 BB 就像 80% 的垃圾邮件。 - 将它安装在本地开发环境中甚至无法运行(参见我的第一次挂断)

这个项目将相当复杂,超出了基本的 CRUD 操作。它不在一个超紧的时间表之下,但有一个。大约 3 个月的里程碑 1,基本上是一个日历,一些金融组织的东西(不是与金融机构的交易,只是个人金融组织类型的东西)和一个项目经理/cms。

另外,我愿意使用其他框架,但 symfony2 似乎是目前最好的。如果 symfony2 有 RoR 的支持/文档​​/教程/等,那将是毫无疑问的。

我真的很想听听 stackoverflowverse 对此事的看法。我一直对这个网站上的答案/回复的质量印象深刻。

其他一些子问题(现在在我脑海中): - 如果你推荐一个不同的 php 框架,为什么? - 您对提到的任何选项最大的不满是什么?

我知道 CakePHP 最接近 RoR,但我一直在读到模型有点不稳定(多对多关系等)。

现在,我倾向于 RoR。简而言之,我真的很想学习它,它可以完成这项工作。我只是不了解 ruby​​,而且我已经准备好了很多关于 symfony2 的知识。

您可以提供的任何建议将不胜感激。谢谢!

【问题讨论】:

  • 如果你想在这个项目上学习一门新语言,我推荐 Python 和 Django,而不是 Ruby 和 RoR。

标签: ruby-on-rails ruby-on-rails-3 frameworks symfony


【解决方案1】:

就个人而言,我建议如果您要开始一个新项目,而该项目恰好是您曾经做过的最大的项目,那么您应该坚持您最了解的项目。这恰好是 PHP。

我使用过 Ruby 或 Rails。事实上,我们公司有一些使用 RoR 的生产应用程序。我学习 RoR 的最好方法是从事小型项目。我永远不会考虑选择一种我不熟悉的编程语言,然后在此基础上学习一个新框架来开始编写一个大项目。

至于 Symfony2,我们在几周前开始使用它。 Symfony2 是一个优秀的框架,看起来很有前途。它很干净,很好地解耦并且速度很快。然而,我们在 Symfony2 中遇到了太多的错误/头痛/不一致,无法继续使用它。一旦它成熟并且文档增长(很多文档现在已经过时),我们将再次开始工作。希望他们会发布某种 Jobeet 教程,但适用于 Symfony2。

继续使用 CakePHP。 CakePHPs 代码库很旧。事实上,它在 PHP 4.3.2 上运行良好。它没有利用 PHP5 提供的所有优点(抽象类、接口、私有和受保护的属性、异常、魔术方法、注释、通过引用传递对象等)。 CakePHPs 数据库抽象层,虽然它有改进,一旦您的数据库结构变得过于复杂(例如许多连接),它的效率就不会非常高。

继续使用我用于许多大型项目的 Symfony 1.4

我喜欢使用,因为:

  1. PHP5
  2. 事件系统
  3. 依赖注入
  4. 缓存系统
  5. 表单(与 Doctrine 2 的完美集成)事实上,这是我最喜欢的功能。
  6. 许多插件(例如用于用户管理的 sfGuard)
  7. Twig(漂亮的模板语言)
  8. 高度可配置
  9. 可扩展(虽然不如 Symfony2 快)
  10. 大量文档(Jobeet 教程很棒)

如果 PHP 目前是您的强项,并且您需要开始处理大型项目,那么请开始使用基于 PHP 的框架,因为您最了解语言语法和功能。

当您有一个小项目要做时,请转到 RoR。

只要我的 2 美分。

祝你好运。

【讨论】:

  • 感谢您的回复。但是,到目前为止,app/check.php 通过了,并且它在 config.php 中所做的检查通过了......然后它没有工作(见:stackoverflow.com/questions/7072552/…)所以是的......到目前为止没有留下深刻的印象。我现在想开始这个项目,而不是旧的/过时的技术(symfony1.x),当已经有一个 symfony2 时......这真的没有意义......除非我错过了一些东西。
  • symfony 1.4 并没有过时.. symfony 2 只是利用了 php 5.3 中的新特性,即命名空间。 symfony 2 虽然目前可能已经发布,但在它成为一个成熟的开发平台之前,它仍然可能会经历各种变化。如果你比较 sf 1.x 树并查看 1.0 和 1.4 之间的变化,想想 sf2 仍然只是 2.0 版本。 Web 框架只是解析和连接字符串的巧妙方法。过时的技术几乎不适用于 Web 框架,除非它们真的过时了。 sf2 不会做任何 sf1 无法做到的事情。
  • 捆绑系统和在本地覆盖“第 3 方”捆绑部件是我在主要使用 s1 多年后在 s2 中看到的最大吸引力/优势。由于@alex.pilon 给出的原因,我实际上还没有在 s2 中编​​写任何项目
【解决方案2】:

到目前为止,Symfony2 对我来说非常棒。与 Symfony1.x 相比,文档很少,但在 Sf2 中入门要容易得多,而且由于事情非常明确,因此对框架内部如何工作的了解较少。

有一个 app/check.php 脚本会警告您运行它所需的任何依赖项,并且支持主要发生在他们的mailing list 中,它非常活跃(甚至不知道有一个 BB)。一些组件,比如Twig,也有自己的列表。

【讨论】:

  • 甚至不知道他们有一个邮件列表...我通常无法忍受那些所以也许我掩盖了它。谢谢..我会检查一下。
  • 都是关于 Twig :p
【解决方案3】:

这是一个老话题,但事情发生了一些变化,我推荐 Symfony2。他们当前的文档很棒(symfony.com),并且对于新手来说更容易学习。我确实尝试过 RoR,但有了 symfony,我就更快地进入了它。

【讨论】:

    【解决方案4】:

    我很惊讶没有人提到 Ruby 的超级丰富的 GEM 社区,因此对于 Ruby on Rails 来说,那里有如此多的功能,如此多的人在从事许多 MIT/开源项目。对我来说,社区是驱使我去选择一个框架而不是另一个框架的动力。配置的数量和不同的模板引擎,对于 ruby​​ on rails 来说实在是太多了。

    查看对比图:

    http://vschart.com/compare/doctrine-php/vs/ruby-on-rails

    归根结底,这一切都归结为您所知道的一切,但不要忽视社区和已经为您编写的免费功能......

    【讨论】:

    • 为什么不喜欢 composer 而不是 Gemfile
    • 我认为这个“图表”中的最后一个属性都是关于这些比较辩论通常以 :) 结束的:)
    【解决方案5】:

    我将回应 solarc 关于 Symfony 2 的 cmets。我将它用于几个小项目,本周我将开始用它做一些更雄心勃勃的事情。我想看一个完整的 Jobeet 风格的教程,但主要文档已经足够开始使用恕我直言了。我正在仔细阅读,并学到了一些我错过的东西,使用文档作为简单的参考。

    查找捆绑包是我最大的挫折,但文档中提到了 knpbundles.com,这似乎是一个极好的资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2013-04-23
      • 2013-09-13
      • 2011-09-11
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多