我需要学习Symfony 3.4才能从事新工作,但是我发现很难找到写得很好的入门教程。我已经尝试通过Symfony官方文档进行学习,但是仍然有很多问题。由于查找3.0和4.0版本的课程和演示应用程序要容易得多,因此我想知道哪一个更接近3.4,以便我可以使用该信息来帮助学习3.4。
更新
有了所有不同的答案,我决定对这两个都学很少。我注意到的是,这两个版本在3.4版本上都有各自的差异。尽管版本3的服务已经过时,例如: Link here
总而言之,由于对php框架,MVC模型和面向对象编程的模糊理解,由于我的问题是要了解官方文档,因此我决定首先学习版本4,因为它有许多面向初学者的教程,并且{ {3}}。
OBS:symfony-demo对我有很大帮助。
答案 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.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平价查看官方博客
请注意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个次要版本。但是他们给出了原因,所以我将简要地反驳它们。
也许现在选择的答案没有意识到这一点,但是目录结构是完全可选的,我前面提到的生产应用程序在我的Symfony 4.1.x后端中使用了Symfony 3.4目录结构。只需确保composer.json知道您的结构即可。
“自动加载”:{ “ psr-4”:{ “ AppBundle \”:“ src / AppBundle /” }, “类图”:[ “ app / AppKernel.php”, “ app / AppCache.php” ] },
Symfony 4 建议反对使用捆绑软件来组织代码,它不是一成不变的,只是与上面的内容有关,请作曲家知道您的代码在src / AppBundle中。 p>
实际上,总而言之,选择3.0的大多数理由都是出于美观目的,但是,如果您想知道3.0中的哪些功能不在3.4中,请查看我放置的链接,这里又是。 https://symfony.com/blog/category/living-on-the-edge
最后,这是人们的看法,我很乐意让受欢迎的人度过美好的一天,即使这不是我自己的日子。
祝你好运!