Какая версия Symfony (3.0 или 4.0) ближе к 3.4?

Мне нужно изучить Symfony 3.4 для новой работы, но мне очень трудно найти хорошо написанные вводные руководства. Я уже пытался изучить официальную документацию Symfony, но у меня все еще есть много вопросов. Поскольку гораздо проще найти курсы и демонстрационные приложения для версий 3.0 и 4.0, я хочу знать, какое из них ближе к 3.4, чтобы я мог использовать эту информацию для изучения 3.4.

ОБНОВИТЬ

Имея разные ответы, я решил немного узнать и то, и другое. Я заметил, что обе версии имеют свои отличия от версии 3.4. Пока в версии 3 есть устаревшие сервисы вроде этого: Какая версия Symfony (3.0 или 4.0) ближе к 3.4?Ссылка здесь

Версия 4 имеет отличия в своей структуре RR_6_R Архитектура версии 4

RR_8_RРархитектура версии 3

В заключение, поскольку моя проблема заключалась в понимании официальной документации из-за нечеткого опыта работы с php-фреймворками, моделью MVC и объектно-ориентированным программированием, я решил сначала изучить версию 4, потому что в ней есть множество руководств для начинающих, а также symfony-demo.

OBS: Этот руководство мне очень помог.

Перейти с 4.1 - symfony.com/roadmap. 4.0 больше не поддерживается

Tomas Votruba 18.11.2018 12:10

Рассмотрите возможность изменения принятого ответа. Вы должны принять ответ, предоставленный Trix, поскольку ответ - 3.0, а не 4.0.

biji buji 18.11.2018 15:14

И именно поэтому такие нечеткие вопросы, основанные на мнениях, не подходят для софтов. Единственный разумный ответ: это зависит от обстоятельств.

Cerad 18.11.2018 16:51

@cerad прав, это, вероятно, будет сводиться к мнению людей, но я ответил, отредактировав свой ответ.

Don Omondi 18.11.2018 23:49

Тем не менее, @bijibuji, хотел бы услышать ваш комментарий о том, почему вы думаете, что это неправильно, вы можете прокомментировать мой ответ.

Don Omondi 18.11.2018 23:50

«Вы просматриваете документацию Symfony 4, которая значительно отличается от Symfony 3.x. Если ваше приложение еще не использует Symfony 4, просмотрите документацию Symfony 3.4».

Pmpr 22.11.2018 05:44

@Trix различия в документации между 3.4 и 4.0 в основном связаны с тем, что они ссылаются на разную структуру папок, но различий между, например, 3.0 и 4.1 много, поэтому они используют этот общий оператор 3.x и 4.x. Но в OP, обнаруженном в его редактировании, синтаксис 3.4 совместим с 4.0 RE: stackoverflow.com/questions/53356773/…

Don Omondi 23.11.2018 02:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
3
7
601
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если можете, используйте Symfony 4.0.

Много раз с Symfony, когда мы достигаем границы новой основной версии, такой как 4.0, чаще всего вы обнаруживаете, что предыдущая последняя второстепенная версия в этом 3.4 в основном совместима с ней, просто устаревшие функции удаленный.

Другими словами, самое большое изменение между 3.4 и 4.0 заключается в том, что любые функции, отмеченные как устаревшие в 3.4, не будут работать в 4.0.

В то время как основная разница между 3.0 и 3.4 - это все новые плюшки, которые убедили команду перейти с 3.4 на 4.0.

Есть несколько незначительных моментов, но, на мой взгляд, это самая большая разница, поэтому переходите на 4.0, который также имеет дополнительное преимущество, позволяющее сэкономить вам еще один скачок, когда 5.0 выйдет в конце следующего года.

Всего наилучшего!

РЕДАКТИРОВАТЬ

Позвольте мне ответить на другой ответ, который оказался на удивление более популярным.

Если вопрос: «Какая версия Symfony (3.0 или 4.0) ближе к 3.4?» Я искренне удивлен, что кто-то искренне скажет 3.0.

Symfony 4 - это Symfony 3.4 без поддержки каких-либо устаревших функций. - вот в чем суть.

Symfony 3.0 - это Symfony 2.8 без поддержки каких-либо устаревших функций.

Не верьте мне на слово, загляните в официальный блог о паритете https://symfony.com/blog/category/living-on-the-edge

Обратите внимание, как сгруппированы 3.4 и 4.0, а также 2.8 и 3.0.

Ближайшее к 3,4 - 4,0, почему? Вы можете безопасно перейти на более раннюю версию с 4.0 до 3.4 без проблем (за исключением сторонних пакетов), вы также можете безопасно перейти с 3.0 до 3.4, но в основном с уведомлениями об устаревании повсюду, не говоря уже о том, что в вашем коде отсутствуют функции, представленные в 3.1, 3.2 и 3.3. Я сбит с толку, почему некоторые могут подумать, что ближайшая к 3.4 - это 4 второстепенные версии назад. Но они привели причины, поэтому я вкратце опровергаю их.

  1. Семантическое версионирование - это просто числа, главное - это какой набор функций ближе всего к 3.4, 4.0 или 3.0?
  2. Symfony flex - это не Symfony. На самом деле он полностью отдельный и мое производственное приложение использует последнюю версию Symfony 4 без гибкость.
  3. Возможно, теперь выбранный ответ не знал об этом, но структура каталогов совершенно необязательна, мое вышеупомянутое производственное приложение использует структуру каталогов Symfony 3.4 в моем бэкэнде Symfony 4.1.x. Просто убедитесь, что composer.json знает вашу структуру.

    "autoload": { "пср-4": { "AppBundle \": "src / AppBundle /" }, "карта классов": [ "приложение / AppKernel.php", "приложение / AppCache.php" ] },

  4. Symfony 4 советует против использования пакетов для организации вашего кода, это не высечено в камне, опять же как раз связано с вышеизложенным, пусть композитор знает, что ваш код находится в src / AppBundle.

На самом деле, в заключение, большинство причин, заявленных для выбора 3.0, являются косметическими, однако, если вы хотите знать, какие функции есть в 3.0, а какие нет в 3.4, взгляните на ссылку, которую я поместил, вот она. https://symfony.com/blog/category/living-on-the-edge

В конце концов, это мнение людей, и я рад, что популярный вариант преобладает, даже если он не мой собственный.

Удачи!

Вопрос не в ФУНКЦИЯХ, а в СИНТАКСИСЕ и ГРАММАТИКЕ.

Pmpr 19.11.2018 06:38

Даже не уверен, что это значит, потому что разве это не функции, которые определяют, как вы синтаксически или грамматически вызываете функцию / службу? В любом случае, не стесняйтесь редактировать свой ответ и объяснять эту часть, если хотите.

Don Omondi 19.11.2018 06:52

У всех машин есть коробка передач, и это ОСОБЕННОСТЬ. У некоторых есть механическая коробка передач, у остальных автоматическая коробка передач, и это Syntax. Вы собираетесь купить новую машину с механической коробкой передач и должны научиться водить машину. Вы арендуете старый автомобиль с механической коробкой передач или новый с автоматической коробкой передач?

Pmpr 19.11.2018 07:18

Хорошо, если вы настаиваете, не стесняйтесь редактировать свой ответ и добавлять аналогию, если хотите. Ваше здоровье.

Don Omondi 19.11.2018 07:26

Что ж, поскольку у нас не может быть четких вопросов, я отправил электронное письмо в службу поддержки Symfony, и они сказали: «При использовании рекомендуемых практик Symfony (и рекомендуемой современной структуры каталогов) 3.4 очень похожа на 4.0».

Gabriel Borges 19.11.2018 13:14

@GabrielBorgesit сообразил, что вы обратились в службу поддержки Symfony. Итак, я думаю, у вас есть выбор ... вы можете решить сравнить фреймворк с коробкой передач ... или вы можете следовать официальному совету ... в любом случае, лучшая практика SO - принять один ответ и двигаться дальше.

Don Omondi 19.11.2018 17:07

Я использовал 2,8, 3,0, 3,4, 4,0 и 4,1 во многих проектах, и, по моему опыту, 3,4 гораздо ближе к 3,0, а не 4,0.

biji buji 21.11.2018 09:05

@bijibuji Как ни странно, я делал то же самое с версии 1.x Возможно, это просто зависит от того, под каким углом вы на это смотрите - структура каталогов или особенности фреймворка. В любом случае OP связался со службой поддержки Symfony, и я рад, что они согласились с моим мнением. Я все еще удивлен, что многие думают иначе, но я предполагаю, что на более низком уровне (например, структура) 3.0 кажется похожим, но на более глубоком уровне 4.0 может делать то, что может 3.4.

Don Omondi 21.11.2018 09:42

Думаю, вопрос не в том, что умеет эта версия. вопрос в том, чтобы помочь в обучении. Я не думаю, что 3.4 похожа на 4. Я думаю, что следует использовать 3.0, если ему нужно научиться использовать 3.4.

biji buji 21.11.2018 15:44

Я не восхищаюсь принятым ответом и не одобряю его, так как он абсолютно неверен!

Согласно вопросу OP,

I need to learn Symfony 3.4 for a new job. Since it's much easier to find courses and demo-applications for versions 3.0 and 4.0, I want to know which one is closer to 3.4?

Очевидно, 3.0 - это ответ.

Как указано в документации четко заявляет, Symfony использует стратегию семантическое управление версиями:

  • A new Symfony patch version (e.g. 2.8.15, 4.1.7) comes out roughly every month. It only contains bug fixes, so you can safely upgrade your apps;

  • A new Symfony minor version (e.g. 2.8, 3.2, 4.1) comes out every six months: one in May and one in November. It contains bug fixes and new features, but it doesn't include any breaking change, so you can safely upgrade your apps;

  • A new Symfony major version (e.g. 3.0, 4.0) comes out every two years. It can contain breaking changes, so you may need to do some changes in your apps before upgrading.

Также обратите внимание, что:

Starting from the Symfony 3.x branch, the number of minor versions is limited to five per branch (X.0, X.1, X.2, X.3 and X.4). The last minor version of a branch (e.g. 3.4, 4.4, 5.4) is considered a long-term support (LTS) version and the other ones are considered standard versions.

Это означает, что только основные выпуски (такие как 2.0, 3.0, 4.0) могут нарушать обратную совместимость. Незначительные выпуски (такие как 3.0, 3.1, 3.4) могут вводить новые функции, но должны делать это без нарушения существующего API этой ветки выпуска (3.x в предыдущем примере).

Итак, 3.4 является LTS и получает поддержку в течение 3 лет. Вы также можете проверить их Обещание обратной совместимости для получения дополнительной информации.

Symfony 3.x против 4.x

Symfony 3.4 и 4.0 имеют одинаковые функции, но разные реализации.

Согласно Symfony 4: вводная страница, это был основной выпуск с кучей целых изменений в структуре:

|            Feature             | 3.0 | 3.4 | 4.0 |
|--------------------------------|-----|-----|-----|
| Flex                           | No  | No  | Yes |
| Recipes                        | No  | No  | Yes |
| Micro-Kernel Start             | No  | No  | Yes |
| Using Bundles To Organize Code | Yes | Yes | No  |
| Directory Structure            | Old | Old | New |
| composer.json Structure        | Old | Old | New |
| Routing Definition             | Old | Old | New |
| Configuration                  | Old | Old | New |
| Routing Annotations            | Old | Old | New |

Так что, если вам нужно изучить 3.4, и у вас есть выбор между 3.0 и 4.0, придерживайтесь 3.0 и забудьте о 4.0.

Хороший ответ @trix, но я ответил на него ниже.

Don Omondi 18.11.2018 23:48

Другие вопросы по теме