哪个Symfony版本(3.0或4.0)更接近3.4?

时间:2018-11-18 00:10:22

标签: symfony

我需要学习Symfony 3.4才能从事新工作,但是我发现很难找到写得很好的入门教程。我已经尝试通过Symfony官方文档进行学习,但是仍然有很多问题。由于查找3.0和4.0版本的课程和演示应用程序要容易得多,因此我想知道哪一个更接近3.4,以便我可以使用该信息来帮助学习3.4。

更新

有了所有不同的答案,我决定对这两个都学很少。我注意到的是,这两个版本在3.4版本上都有各自的差异。尽管版本3的服务已经过时,例如: Link here

版本4在结构上architecture of version 4版本4的体系结构上有差异

architecture of version 3版本3的体系结构

总而言之,由于对php框架,MVC模型和面向对象编程的模糊理解,由于我的问题是要了解官方文档,因此我决定首先学习版本4,因为它有许多面向初学者的教程,并且{ {3}}。

OBS:symfony-demo对我有很大帮助。

2 个答案:

答案 0 :(得分:5)

我不佩服或接受认可的答案,因为那是完全错误的!

根据OP的问题,

  

我需要学习Symfony 3.4才能从事新工作。因为查找3.0和4.0版本的课程和演示应用程序要容易得多,所以我想知道哪个更接近3.4?

显然3.0是答案。

作为文档clearly states,Symfony使用semantic versioning策略:

  
      
  • 大约每个月都会发布一个新的Symfony补丁版本(例如2.8.15、4.1.7)。它仅包含错误修复,因此您可以安全地升级应用;

  •   
  • 每六个月发布一个新的Symfony次要版本(例如2.8、3.2、4.1):一个在5月,一个在11月。它包含错误修复和新功能,但不包含任何重大更改,因此您可以安全地升级应用程序;

  •   
  • 每两年会发布一个新的Symfony主版本(例如3.0、4.0)。它可能包含重大更改,因此您可能需要在应用程序中进行一些更改,然后才能进行升级。

  •   

还请注意:

  

Symfony 3.x 分支开始,次要版本数限制为每个分支五个(X.0,X.1,X.2,X.3和X.4 )。分支的最后一个次要版本(例如3.4、4.4、5.4)被视为长期支持(LTS)版本,而其他版本则被视为标准版本。 / p>

表示仅允许主要版本(例如2.0、3.0、4.0)破坏向后兼容性。次要版本(例如3.0、3.1、3.4)可能会引入新功能,但必须这样做,而不会破坏该版本分支的现有API(上一示例中为3.x)

因此,3.4是LTS,并获得了3年的支持。您也可以查看他们的Backward Compatibility Promise以获取更多信息。

Symfony 3.x和4.x

Symfony 3.4和4.0具有完全相同的功能,但实现方式不同。

根据Symfony 4 Introduction page,这是一个主要版本,对框架进行了大量更改:

|            Feature             | 3.0 | 3.4 | 4.0 |
|--------------------------------|-----|-----|-----|
| Flex                           | No  | No  | Yes |
| Recipes                        | No  | No  | Yes |
| Micro-Kernel Start             | No  | No  | Yes |
| Using Bundles To Organize Code | Yes | Yes | No  |
| Directory Structure            | Old | Old | New |
| composer.json Structure        | Old | Old | New |
| Routing Definition             | Old | Old | New |
| Configuration                  | Old | Old | New |
| Routing Annotations            | Old | Old | New |

因此,如果您需要学习3.4并且可以在3.0和4.0之间进行选择,请坚持使用3.0并忘记4.0

答案 1 :(得分:2)

如果可以,请使用Symfony 4.0

使用Symfony的很多时候,当我们到达新的主要版本(如4.0)的边缘时,您经常会发现,在此3.4中的先前的次要版本与该版本主要兼容,只是不推荐使用的功能将被删除。

换句话说,3.4和4.0之间的最大变化是,在3.4中标记为不推荐使用的所有功能在4.0中均不起作用。

3.0和3.4之间的主要区别在于,所有说服团队从3.4跃升至4.0的新优点

有一些次要的东西,但这是我认为最大的不同,所以选择4.0时,还有另一个好处,那就是在明年年底5.0推出时为您节省了又一次飞跃。

祝一切顺利!

编辑

允许我回答另一个令人惊讶地更受欢迎的答案。

如果问题是“哪个Symfony版本(3.0或4.0)更接近3.4?”我真的很惊讶有人会说3.0。

Symfony 4是Symfony 3.4,不支持任何不推荐使用的功能。 -这是重点。

Symfony 3.0是Symfony 2.8,不支持任何不推荐使用的功能。

不要相信我,请访问https://symfony.com/blog/category/living-on-the-edge平价查看官方博客

enter image description here

请注意3.4和4.0以及2.8和3.0的分组方式。

最接近3.4的是4.0,为什么?您可以安全地从4.0降级到3.4(除非有第三方捆绑包),还可以安全地从3.0升级到3.4,但是大多数情况下都会有弃用通知,更不用说您的代码缺少3.1、3.2和3.3中引入的功能。我困惑为什么有些人认为最接近3.4的是4个次要版本。但是他们给出了原因,所以我将简要地反驳它们。

  1. 语义版本控制实际上只是数字,重要的是 哪个功能集最接近3.4、4.0或3.0?
  2. Symfony flex不是Symfony。实际上,它是完全独立的, 我的生产应用程序正在使用最新的Symfony 4版本,而没有 弯曲。
  3. 也许现在选择的答案没有意识到这一点,但是目录结构是完全可选的,我前面提到的生产应用程序在我的Symfony 4.1.x后端中使用了Symfony 3.4目录结构。只需确保composer.json知道您的结构即可。

    “自动加载”:{     “ psr-4”:{         “ AppBundle \”:“ src / AppBundle /”     },     “类图”:[         “ app / AppKernel.php”,         “ app / AppCache.php”     ] },

  4. Symfony 4 建议反对使用捆绑软件来组织代码,它不是一成不变的,只是与上面的内容有关,请作曲家知道您的代码在src / AppBundle中。 p>

实际上,总而言之,选择3.0的大多数理由都是出于美观目的,但是,如果您想知道3.0中的哪些功能不在3.4中,请查看我放置的链接,这里又是。 https://symfony.com/blog/category/living-on-the-edge

最后,这是人们的看法,我很乐意让受欢迎的人度过美好的一天,即使这不是我自己的日子。

祝你好运!