代码之家  ›  专栏  ›  技术社区  ›  Andrei Herford

使用Flex创建了新的Symfony 3.4项目-这真的是Symfony 3.4吗?

  •  0
  • Andrei Herford  · 技术社区  · 7 年前

    问题是:

    是一个 Symfony 3.4 使用Flex安装程序创建的项目 Symfony 3.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 4 Symfony 3.4 仍然非常类似于 Symfony 2.8 . 但怎么可能有两个呢 Symfony 3.4 安装有如此大的不同?

    我知道Flex是一种新的项目管理工作流,但不应该是最终结果——一种新的工作流 Symfony 3.4

    Flex在设置和管理不同的项目时更强大。然而,我想设置一次项目,并运行几年。继续使用Flex方法(在不久的将来)有什么好处吗?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Cerad    7 年前

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

    就目录结构而言,Symfony试图在保持向后兼容性的同时继续前进并改进其设计之间取得平衡。有关为什么要做这些事情的信息,请关注Symfony博客,或者访问slack频道。特别是引入Flex时的帖子以及新的目录结构。

    Symfony的一个目标是尽可能轻松地从长期支持版本迁移到新版本。因此,2.8与3.0几乎相同,只是删除了一堆被贬低的功能。如果你当时在关注一些事情,你会注意到在2.7和2.8之间有一个相当大的跳跃。

    有点迂回。很抱歉

    在我的例子中,选择使用新的目录结构很容易。我有很多应用程序,每天都使用Symfony。对我来说,跟上最新最棒的东西是有意义的。花时间将应用程序(其中一些可以追溯到2.3版)移植到4.0版可以让我的总体维护负担更轻松。花在试验如何移植上的时间帮助我理解了新功能。一旦我对这个过程感到满意,它实际上大部分只是复制/粘贴/重命名练习。最困难的是确保某些第三方依赖项得到了正确更新。

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

        2
  •  0
  •   DhiaEddine Ayadi    7 年前

    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