Symfony 2 还是 Symfony 1.4? [关闭]

Posted

技术标签:

【中文标题】Symfony 2 还是 Symfony 1.4? [关闭]【英文标题】:Symfony 2 or Symfony 1.4? [closed] 【发布时间】:2011-10-13 00:15:31 【问题描述】:

我正在启动一个新的 Symfony 项目,该项目对我的公司来说非常重要。我的经验仅适用于 Symfony 1.4。我有 3 个月的时间来完成这个项目。

该项目应该存在多年,并且会发展为具有许多功能。我知道很多人已经在生产环境中使用 Symfony 2,但是你认为使用 1.4 是个坏主意吗?

每种情况都不同。我认为 1.4 没有任何问题,但有些人建议我使用 Symfony 2,因为最终我们需要升级并重写大量代码。

另外,还有 Doctrine 2。我将使用 1.2.4。再说一次,我知道 Doctrine 2 真的很棒,但我坚持使用 1.2.4 会不会走下坡路?它似乎可以做我们需要的一切。

感谢您的任何见解。

【问题讨论】:

好吧,公平地说,Symfony 2 将于明天正式发布,所以如果回答“我应该使用 Symfony 2?”在过去的几个月里发生了变化...... 【参考方案1】:

为什么你应该使用 Symfony 2.0:

更快。许多 Symfony 组件的性能都得到了提升,现在它还支持边缘端包含。 修复了较弱的设计。 Symfony 1.x 很棒,但有些组件有缺陷,比如日志记录(现在外包)和任务(更灵活)。 1.x 中的表单很强大,但也有一些缺陷; 2.0 中的表格更好。 这是未来。 Symfony 1.x 将在您的项目生命周期之前到期。你已经说过你重写它。等待是没有意义的。 更简洁、更简单的代码。命名空间,更解耦,通常比 Symfony 1.x 更漂亮。 教义 2.0。更快,更容易使用。

选择 1.x 的唯一可能原因是时间问题。但是,如果这个项目那么重要,那么增加时间限制(如果不可行)会更有意义,然后在 1.x 中进行,然后浪费所有时间重写。

【讨论】:

虽然我同意你上面写的所有内容,但与以前的版本相比,Doctrine 2 故意非常轻量级。如果 OP 期待行为,他们会感到失望。需要深入研究以了解您获得了什么以及您会失去什么(或需要采取非常不同的做法)。 你错过了一点,很可能他将与下一个项目处于同一个十字路口;所以现在就爬上学习曲线,用 :p【参考方案2】:

好吧,如果您有更多的时间来完成项目,Symfony 2.0 真的应该是您的选择。 Symfony 2.0 开发人员仍在努力学习使用所有这些优秀标准和最佳实践的正确方法。

使用 SF 1.4 的社区已经成熟,已经解决了所有常见(以及其他不常见)场景可能出现的每一个问题。

所有关于速度的论点都不适用于 90%(或更多?)基于 SF 构建的项目。除非你需要一个高性能的 webapp(服务超过 500-1000 个请求/分钟),否则使用 SF 1.4 就可以了。如果您需要提供更多服务,您始终可以在现场多使用一台服务器。经过优化的 SF 1.4 应用程序可以运行得非常好。

我想说的是,对于大多数应用来说,所有关于性能的讨论都不是问题。人们在提高速度标志时不会考虑它。

SF 1.4 是一个结构良好的框架。它确实在开发过程中加快了速度。 SF 2.0 是一个正在开发的社区。人们仍在为最常见的问题开发解决方案和插件。

我的所有新项目仍在使用 SF 1.4。主要是因为我在这方面做了很多工作,让我的项目完成得非常快。我所有的客户都不需要高性能的 web 应用程序,但是我有自己的项目需要快速并且经过优化后确实如此。

【讨论】:

这张幻灯片可以帮助您做出slideshare.net/thrashr888/symfony-performance 的决定。 定义“精细”。仅 Do​​ctrine 2 就可以轻松缩短数百毫秒的执行时间。 Doctrine 1.x 中的水合作用非常缓慢。 Symfony 1.x 中的路由也很慢。 很好意味着您编写应用程序并且其用户不会抱怨速度缓慢。这对我来说很好。用户不关心基准。运行速度较慢的程序比运行速度快但有问题的程序更好。尽管 Doctrine 1.x 和 SF 1.4 路由很慢,但您可以优化您的应用程序并获得 200 毫秒 @jeremy 我同意理论 2 更快,但某些功能过于复杂。喜欢使用 mysql 函数,我必须首先为其创建类来解析该函数​​,因为您必须首先学习 \Doctrine\ORM\Query\Parser。对于每一个功能,我们必须首先告诉教义它的行为,这不是很费时间吗?如果我们使用嵌套的 mysql 函数怎么办?谁知道如何解析?它真的很难。我已经在这里为一个问题苦苦挣扎***.com/questions/24799971/…【参考方案3】:

自 1.0 以来,我一直在努力解决这个问题。好的,太好了,我完成了我的 1dot 0 项目,邪恶的火了...不用等待,现在有 1.1...好的升级经历了所有的升级麻烦...好的酷现在它准备好了,但不用等待 1.2 现在出来了。 ..FFS ...好的,通过学习这个新的表单类和插件问题,将所有东西升级到1.2,因为sfGuard需要一个新版本等等等等......好吧,现在我们准备好启动它了,但不用等待......他们已在 WTH 的同一天发布 1.3 和 1.4。好吧,这次升级会有多糟糕??? phpmailer 好 swiftmailer 不好。还是这次相反。哦,FFS 这个 symfony2 到底是怎么回事.....

我确定我不是唯一经历过这种情况(或类似情况)的人

重要的是您知道什么以及您擅长什么。我敢肯定 Symfony 2 是有史以来最棒的棒棒哒。但是,如果您需要三个月的时间来加快速度并解决所有会出现的错误。那么您最好使用 1.4 并在您所知道的基础上再接再厉。

我坚持使用 1.4,因为我已经建立了一个运行良好的大型代码库。正如您可以从不同的意见中看到的那样,尽管争论可能会持续一段时间。

反正那是我的两分钱。

【讨论】:

【参考方案4】:

我仍在 Symfony 1.4 中做我的项目,但是为自己概述一个关于如何对 2.0 进行这些更改的策略将是一个好主意。另外,听起来对Doctrine有些失望,Propel开发似乎已经被唤醒了。未来,许多偏好可能会转向 Propel。

【讨论】:

【参考方案5】:

短期: 如果您知道 sf1.4 允许您在完成客户要求的所有工作的时间内完成项目。

专业人士:你知道的,技术上没有成本 缺点:2012 年 11 月终止支持,Lime 用于测试(或 PHPUnit 插件),使用“旧”解决方案

长期: 正如您所说,该项目应该存在多年,所以我认为许多开发人员会致力于它。 Sf2 更加解耦并使用 PHPUnit 进行测试。允许您使用 ESI 并在 HTTP 标准下表现出色(无应用程序缓存)。

Pro:全新工具,非常活跃的项目,比 sf1.4 高出几步,随着网络的发展,Sf2 也将接受这些变化并支持开发 缺点:你不知道,但你可以雇人来帮助你(GTD 和学习新框架)

【讨论】:

【参考方案6】:

完成工作比使用最新最好的更重要,尽管 symfony 2 似乎是一个整体上更好的版本,但 symfony 1.4 仍然是一个很棒的产品,拥有更多知识渊博的开发人员,因此如果你遇到任何问题跌跌撞撞的博客,您更有可能在更短的时间内找到解决方案。

对于您的目的而言,symfony 1.4 已经足够好了,并且当您决定迁移到 symfony 2 时,它会让您更加了解 symfony。

版本之间有足够的相似性,可以通过使用 symfony 1.4 获得有用的知识,这意味着现在,您可以获得两全其美的体验——为以后的工作和完成工作提供有用的经验。

【讨论】:

【参考方案7】:

使用 Symfony 2。 由于 Symfony 2 的高级 ACL 功能,我现在正在从 1.4 切换到 2。

最终会为你节省很多时间。

【讨论】:

【参考方案8】:

我会选择 symfony 2。你有所有的功能改进(更快、学说 2 等等等等),但这不是我选择它的原因。

Symfony 2 已经过彻底的安全测试,这对于任何实际项目都至关重要。再加上长期支持不会涵盖您的项目生命周期这一事实,确实有必要在 2 中构建它。

在 sf 1.x 工作了几年之后,我刚刚开始了我在 SF2 中的第一个项目。有很多变化,但并没有花太长时间适应。

【讨论】:

以上是关于Symfony 2 还是 Symfony 1.4? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 1.4 + Pager:忽略顺序数组

使用 Symfony 1.4 的自动加载器加载命名空间类?

Symfony 1.4 的信用卡验证器

PHP 用户登录Symfony 1.4功能测试

Symfony 1.4:表单中 CSRF 的自定义错误消息

Symfony 1.4表单复选框数组到字符串转换