簡體   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