Мне нужно изучить Symfony 3.4 для новой работы, но мне очень трудно найти хорошо написанные вводные руководства. Я уже пытался изучить официальную документацию Symfony, но у меня все еще есть много вопросов. Поскольку гораздо проще найти курсы и демонстрационные приложения для версий 3.0 и 4.0, я хочу знать, какое из них ближе к 3.4, чтобы я мог использовать эту информацию для изучения 3.4.
ОБНОВИТЬ
Имея разные ответы, я решил немного узнать и то, и другое. Я заметил, что обе версии имеют свои отличия от версии 3.4. Пока в версии 3 есть устаревшие сервисы вроде этого:
Ссылка здесь
Версия 4 имеет отличия в своей структуре RR_6_R Архитектура версии 4
RR_8_RРархитектура версии 3
В заключение, поскольку моя проблема заключалась в понимании официальной документации из-за нечеткого опыта работы с php-фреймворками, моделью MVC и объектно-ориентированным программированием, я решил сначала изучить версию 4, потому что в ней есть множество руководств для начинающих, а также symfony-demo.
OBS: Этот руководство мне очень помог.
Рассмотрите возможность изменения принятого ответа. Вы должны принять ответ, предоставленный Trix, поскольку ответ - 3.0, а не 4.0.
И именно поэтому такие нечеткие вопросы, основанные на мнениях, не подходят для софтов. Единственный разумный ответ: это зависит от обстоятельств.
@cerad прав, это, вероятно, будет сводиться к мнению людей, но я ответил, отредактировав свой ответ.
Тем не менее, @bijibuji, хотел бы услышать ваш комментарий о том, почему вы думаете, что это неправильно, вы можете прокомментировать мой ответ.
«Вы просматриваете документацию Symfony 4, которая значительно отличается от Symfony 3.x. Если ваше приложение еще не использует Symfony 4, просмотрите документацию Symfony 3.4».
@Trix различия в документации между 3.4 и 4.0 в основном связаны с тем, что они ссылаются на разную структуру папок, но различий между, например, 3.0 и 4.1 много, поэтому они используют этот общий оператор 3.x и 4.x. Но в OP, обнаруженном в его редактировании, синтаксис 3.4 совместим с 4.0 RE: stackoverflow.com/questions/53356773/…




Если можете, используйте 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 второстепенные версии назад. Но они привели причины, поэтому я вкратце опровергаю их.
Возможно, теперь выбранный ответ не знал об этом, но структура каталогов совершенно необязательна, мое вышеупомянутое производственное приложение использует структуру каталогов Symfony 3.4 в моем бэкэнде Symfony 4.1.x. Просто убедитесь, что composer.json знает вашу структуру.
"autoload": { "пср-4": { "AppBundle \": "src / AppBundle /" }, "карта классов": [ "приложение / AppKernel.php", "приложение / AppCache.php" ] },
Symfony 4 советует против использования пакетов для организации вашего кода, это не высечено в камне, опять же как раз связано с вышеизложенным, пусть композитор знает, что ваш код находится в src / AppBundle.
На самом деле, в заключение, большинство причин, заявленных для выбора 3.0, являются косметическими, однако, если вы хотите знать, какие функции есть в 3.0, а какие нет в 3.4, взгляните на ссылку, которую я поместил, вот она. https://symfony.com/blog/category/living-on-the-edge
В конце концов, это мнение людей, и я рад, что популярный вариант преобладает, даже если он не мой собственный.
Удачи!
Вопрос не в ФУНКЦИЯХ, а в СИНТАКСИСЕ и ГРАММАТИКЕ.
Даже не уверен, что это значит, потому что разве это не функции, которые определяют, как вы синтаксически или грамматически вызываете функцию / службу? В любом случае, не стесняйтесь редактировать свой ответ и объяснять эту часть, если хотите.
У всех машин есть коробка передач, и это ОСОБЕННОСТЬ. У некоторых есть механическая коробка передач, у остальных автоматическая коробка передач, и это Syntax. Вы собираетесь купить новую машину с механической коробкой передач и должны научиться водить машину. Вы арендуете старый автомобиль с механической коробкой передач или новый с автоматической коробкой передач?
Хорошо, если вы настаиваете, не стесняйтесь редактировать свой ответ и добавлять аналогию, если хотите. Ваше здоровье.
Что ж, поскольку у нас не может быть четких вопросов, я отправил электронное письмо в службу поддержки Symfony, и они сказали: «При использовании рекомендуемых практик Symfony (и рекомендуемой современной структуры каталогов) 3.4 очень похожа на 4.0».
@GabrielBorgesit сообразил, что вы обратились в службу поддержки Symfony. Итак, я думаю, у вас есть выбор ... вы можете решить сравнить фреймворк с коробкой передач ... или вы можете следовать официальному совету ... в любом случае, лучшая практика SO - принять один ответ и двигаться дальше.
Я использовал 2,8, 3,0, 3,4, 4,0 и 4,1 во многих проектах, и, по моему опыту, 3,4 гораздо ближе к 3,0, а не 4,0.
@bijibuji Как ни странно, я делал то же самое с версии 1.x Возможно, это просто зависит от того, под каким углом вы на это смотрите - структура каталогов или особенности фреймворка. В любом случае OP связался со службой поддержки Symfony, и я рад, что они согласились с моим мнением. Я все еще удивлен, что многие думают иначе, но я предполагаю, что на более низком уровне (например, структура) 3.0 кажется похожим, но на более глубоком уровне 4.0 может делать то, что может 3.4.
Думаю, вопрос не в том, что умеет эта версия. вопрос в том, чтобы помочь в обучении. Я не думаю, что 3.4 похожа на 4. Я думаю, что следует использовать 3.0, если ему нужно научиться использовать 3.4.
Я не восхищаюсь принятым ответом и не одобряю его, так как он абсолютно неверен!
Согласно вопросу 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.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, но я ответил на него ниже.
Перейти с 4.1 - symfony.com/roadmap. 4.0 больше не поддерживается