繁体   English   中英

使用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

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

几乎没有任何东西看起来像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方法是否有任何优势?

要回答第一个问题:是的,使用Flex创建的Symfony 3.4项目确实是3.4项目。 “ bin / console --version”将对此进行验证。

就目录结构而言,Symfony试图在保持向后兼容性与同时保持前进与完善其设计之间寻求平衡。 有关为何执行此操作的信息,请密切关注Symfony博客并访问松弛的频道。 特别是引入Flex时的帖子以及新的目录结构。

Symfony的一个目标是使从长期支持版本到较新版本的迁移尽可能容易。 因此,2.8与3.0几乎相同,只是删除了许多折旧的功能。 如果您当时在关注这些事情,您会注意到2.7和2.8之间有很大的跳跃。

对于3.4到4.0一样简单,但是从3.0到3.4可能会有一些颠簸。

有点曲折。 抱歉。

与所有基于意见的问题一样,要解决使用Flex的价值的第二个问题,唯一正确的答案是:它取决于。

就我而言,使用新目录结构的选择很容易。 我有许多应用程序,并且每天使用Symfony。 跟上最新和最伟大的事情对我来说很有意义。 花时间将应用程序(其中一些可追溯到2.3)移植到4.0,使我的整体维护负担变得更加轻松。 尝试如何移植的时间帮助我了解了新功能。 一旦我适应了这一过程,实际上大部分时间只是在复制/粘贴/重命名练习。 最难的是确保某些第三方依赖项已正确更新。

在您的情况下,您似乎只有一个应用程序,并且只想更新它,然后忘记了几年。 在这种情况下,请保留旧结构并继续前进。 在某些时候,您可能需要使用新的结构,但是等待几年不会对您造成任何伤害。 嘿,我怀疑5.0会带来更多变化。

这是你的选择。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM