使用 Flex 创建了新的 Symfony 3.4 项目——这真的是 Symfony 3.4 吗?
Created new Symfony 3.4 project using Flex - Is this really Symfony 3.4?
问题:
使用 Flex 安装程序创建的 Symfony 3.4
项目真的 Symfony 3.4
吗?或更多“具有 3.4 个核心文件的 Symfony 4 项目?
完整故事:
我正在努力将现有的 Symfony 2.8
项目迁移到 Symfony 3.4
。起初我使用 Symfony 安装程序创建了一个新的 Symfony 3.4
项目:
symfony new MyProject 3.4
文件和文件夹结构与 Symfony 2.8
略有不同,但总体而言一切都非常相似。从现有的 2.8 项目迁移配置、文件等并不太困难。
然而,经过更多研究后,我认为使用推荐的 Flex 安装程序启动新的 3.4 项目可能是个好主意。这将给我新的文件夹结构,它也在 Symfony 4
中使用,这可能使将来迁移到此版本更容易。
composer create-project symfony/skeleton:3.4.* MyProject
当然这个项目的目录结构是不同的。但不仅文件夹不同,而且几乎所有内容都不同。完整配置的组织方式、路由的定义和管理方式、捆绑包的组织方式(none)、参数的定义和使用方式等。
几乎没有任何东西看起来像 Symfony 3.4
。这似乎是一个 Symfony 4
设置,其中只有 vendor/symfony/...
中的文件来自版本 3.4
将 2.8 项目迁移到此设置会更加复杂。
当然我知道 Symfony 4
发生了很多变化,而 Symfony 3.4
仍然与 Symfony 2.8
非常相似。 但是两个 Symfony 3.4
安装怎么可能有如此大的不同?
我知道 Flex 是一个管理项目的新工作流程,但不应该是最终结果 - 一个新的 Symfony 3.4
项目 - 无论使用哪个工作流程/安装来创建,都或多或少相同是吗?
Flex 在设置和管理不同的项目时更加强大。但是我想设置一次项目并 运行 几年。继续采用 Flex 方法是否有任何优势(在不久的将来)?
Symfony Flex 是安装和管理 Symfony 应用程序的新方式。 Flex 不是新的 Symfony 版本,而是一个替代和改进 Symfony Installer 和 Symfony Standard Edition 的工具。
Symfony Flex 自动执行 Symfony 应用程序最常见的任务,例如安装和删除捆绑包以及其他 Composer 依赖项。 Symfony Flex 适用于 Symfony 3.3 及更高版本。从 Symfony 4.0 开始,应该默认使用 Flex,但它仍然是可选的。
回答您的第一个问题:是的,使用 Flex 创建的 Symfony 3.4 项目确实是一个 3.4 项目。 "bin/console --version" 将对此进行验证。
就目录结构而言,Symfony 试图在保持向后兼容性与保持向前并改进其设计之间取得平衡。有关为什么要这样做的信息,请关注 Symfony 博客并访问 slack 频道。尤其是引入Flex时的帖子,以及新的目录结构。
Symfony 的一个目标是尽可能容易地从长期支持版本迁移到更新版本。因此 2.8 与 3.0 几乎相同,只是删除了一堆贬值的功能。如果您当时关注一些事情,您会注意到 2.7 和 2.8 之间有相当大的跳跃。
从 3.4 到 4.0 也很容易,但从 3.0 到 3.4 可能会有一些颠簸。
有点曲折。对不起。
关于使用 Flex 的价值的第二个问题,与所有基于意见的问题一样,唯一正确的答案是:这取决于。
就我而言,选择使用新的目录结构很容易。我有很多应用程序并且每天都使用 Symfony。跟上最新和最好的对我来说很有意义。花时间将应用程序(其中一些可以追溯到 2.3)移植到 4.0 使我的整体维护负担更轻松。试验如何移植所花费的时间帮助我理解了新功能。一旦我适应了这个过程,它实际上只是 copy/paste/rename 大部分时间的练习。最困难的是确保某些第 3 方依赖项已正确更新。
在你的情况下,你似乎只有一个应用程序,你只想更新它,然后在几年内忘记它。在那种情况下,保留旧结构并继续前进。在某些时候,您可能需要迁移到新结构,但等待几年不会有任何坏处。嘿,我怀疑 5.0 会引入更多变化。
选择权在你。
问题:
使用 Flex 安装程序创建的 Symfony 3.4
项目真的 Symfony 3.4
吗?或更多“具有 3.4 个核心文件的 Symfony 4 项目?
完整故事:
我正在努力将现有的 Symfony 2.8
项目迁移到 Symfony 3.4
。起初我使用 Symfony 安装程序创建了一个新的 Symfony 3.4
项目:
symfony new MyProject 3.4
文件和文件夹结构与 Symfony 2.8
略有不同,但总体而言一切都非常相似。从现有的 2.8 项目迁移配置、文件等并不太困难。
然而,经过更多研究后,我认为使用推荐的 Flex 安装程序启动新的 3.4 项目可能是个好主意。这将给我新的文件夹结构,它也在 Symfony 4
中使用,这可能使将来迁移到此版本更容易。
composer create-project symfony/skeleton:3.4.* MyProject
当然这个项目的目录结构是不同的。但不仅文件夹不同,而且几乎所有内容都不同。完整配置的组织方式、路由的定义和管理方式、捆绑包的组织方式(none)、参数的定义和使用方式等。
几乎没有任何东西看起来像 Symfony 3.4
。这似乎是一个 Symfony 4
设置,其中只有 vendor/symfony/...
中的文件来自版本 3.4
将 2.8 项目迁移到此设置会更加复杂。
当然我知道 Symfony 4
发生了很多变化,而 Symfony 3.4
仍然与 Symfony 2.8
非常相似。 但是两个 Symfony 3.4
安装怎么可能有如此大的不同?
我知道 Flex 是一个管理项目的新工作流程,但不应该是最终结果 - 一个新的 Symfony 3.4
项目 - 无论使用哪个工作流程/安装来创建,都或多或少相同是吗?
Flex 在设置和管理不同的项目时更加强大。但是我想设置一次项目并 运行 几年。继续采用 Flex 方法是否有任何优势(在不久的将来)?
Symfony Flex 是安装和管理 Symfony 应用程序的新方式。 Flex 不是新的 Symfony 版本,而是一个替代和改进 Symfony Installer 和 Symfony Standard Edition 的工具。
Symfony Flex 自动执行 Symfony 应用程序最常见的任务,例如安装和删除捆绑包以及其他 Composer 依赖项。 Symfony Flex 适用于 Symfony 3.3 及更高版本。从 Symfony 4.0 开始,应该默认使用 Flex,但它仍然是可选的。
回答您的第一个问题:是的,使用 Flex 创建的 Symfony 3.4 项目确实是一个 3.4 项目。 "bin/console --version" 将对此进行验证。
就目录结构而言,Symfony 试图在保持向后兼容性与保持向前并改进其设计之间取得平衡。有关为什么要这样做的信息,请关注 Symfony 博客并访问 slack 频道。尤其是引入Flex时的帖子,以及新的目录结构。
Symfony 的一个目标是尽可能容易地从长期支持版本迁移到更新版本。因此 2.8 与 3.0 几乎相同,只是删除了一堆贬值的功能。如果您当时关注一些事情,您会注意到 2.7 和 2.8 之间有相当大的跳跃。
从 3.4 到 4.0 也很容易,但从 3.0 到 3.4 可能会有一些颠簸。
有点曲折。对不起。
关于使用 Flex 的价值的第二个问题,与所有基于意见的问题一样,唯一正确的答案是:这取决于。
就我而言,选择使用新的目录结构很容易。我有很多应用程序并且每天都使用 Symfony。跟上最新和最好的对我来说很有意义。花时间将应用程序(其中一些可以追溯到 2.3)移植到 4.0 使我的整体维护负担更轻松。试验如何移植所花费的时间帮助我理解了新功能。一旦我适应了这个过程,它实际上只是 copy/paste/rename 大部分时间的练习。最困难的是确保某些第 3 方依赖项已正确更新。
在你的情况下,你似乎只有一个应用程序,你只想更新它,然后在几年内忘记它。在那种情况下,保留旧结构并继续前进。在某些时候,您可能需要迁移到新结构,但等待几年不会有任何坏处。嘿,我怀疑 5.0 会引入更多变化。
选择权在你。