0

问题:

真的是Symfony 3.4用 Flex 安装程序创建的项目Symfony 3.4吗?或者更多的“带有 3.4 个核心文件的 Symfony 4 项目?

完整的故事:

我正在将现有Symfony 2.8项目迁移到Symfony 3.4. 起初我Symfony 3.4使用 Symfony 安装程序创建了一个新项目:

symfony new MyProject 3.4

文件和文件夹结构有点不同,Symfony 2.8但总的来说一切都非常相似。从现有的 2.8 项目迁移配置、文件等并不难。

但是,经过更多研究后,我认为使用推荐的 Flex 安装程序来启动新的 3.4 项目可能是个好主意。这将为我提供也用于 的新文件夹结构Symfony 4,这可能会使将来更容易迁移到此版本。

composer create-project symfony/skeleton:3.4.* MyProject

当然这个项目的目录结构是不同的。但不仅文件夹不同,而且几乎所有内容都不同。完整配置的组织方式、路由的定义和管理方式、捆绑包的组织方式(根本没有)、参数的定义和使用方式等。

看起来几乎什么都没有了Symfony 3.4。这似乎是一个Symfony 4设置,其中只有文件vendor/symfony/...来自 3.4 版

将 2.8 项目迁移到此设置会更加复杂。

当然我知道有很多变化,Symfony 4Symfony 3.4仍然与Symfony 2.8. 但是两个装置怎么可能Symfony 3.4有如此巨大的不同呢?

我知道 Flex 是管理项目的新工作流程,但不应该是最终结果 - 一个新Symfony 3.4项目 - 无论使用哪个工作流程/安装来创建它,都或多或少相同?

Flex 在设置和管理不同的项目时更强大。但是我想设置一次项目并运行几年。采用 Flex 方法(在不久的将来)是否有任何优势?

4

2 回答 2

3

回答您的第一个问题:是的,使用 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 使我的整体维护负担更轻松。尝试如何移植所花费的时间帮助我理解了新功能。一旦我对这个过程感到满意,它实际上只是大部分的复制/粘贴/重命名练习。最难的是确保正确更新了一些 3rd 方依赖项。

在您的情况下,您似乎只有一个应用程序,您只想更新它,然后忘记它几年。在这种情况下,保持旧结构并继续前进。在某些时候,您可能需要迁移到新结构,但等待几年不会有任何伤害。嘿,我怀疑 5.0 会引入更多的变化。

这是你的选择。

于 2018-12-13T17:11:47.243 回答
0

Symfony Flex 是安装和管理 Symfony 应用程序的新方法。Flex 不是一个新的 Symfony 版本,而是一个替代和改进 Symfony Installer 和 Symfony Standard Edition 的工具。

Symfony Flex 自动执行 Symfony 应用程序的最常见任务,例如安装和删除包和其他 Composer 依赖项。Symfony Flex 适用于 Symfony 3.3 及更高版本。从 Symfony 4.0 开始,应该默认使用 Flex,但它仍然是可选的。

来源:https ://symfony.com/doc/3.4/setup/flex.html

于 2018-12-12T09:12:10.613 回答