Symfony Flex
Symfony 4 - это прорыв в фреймворк-строении, никогда еще не было так легко создавать приложения, любого формата будь это RestFull API, микросервис или просто сайт одностраничник!
Symfony 4 стал таким гибким благодаря использованию компонента Symfony Flex, который может быть подключен и к Symfony 3.4
Разработчики провели огромную работу, вы только представьте фреймворк из коробки стал весить на 70% меньше и стал еще быстрее. Без папки vendor, всего 16 файлов и ~1800 строк кода.
Давайте запомним этот день 30 ноября 2017 года, дата релиза Symfony 4.0
Какие изменения произошли по сравнению с Symfony 3.4 ?
1. Стало больше стандартных идей, меньше "symfony-ideas". Например вместо точки входа web/app.php в Symfony 3, стал использоваться путь по умолчанию для веб-сервера public/index.php
2. Автоматическая установка пакетов с помощью Symfony Flex
3. Автоматическая регистрация сервисов, теперь не нужно отдельно в AppKernel.php регистрировать свои бандлы
4. Бандлов теперь нет... WTF? Теперь весь проект и есть бандл.
5. Symfony 4 позиционируется как micro-framework.
6. Автоматическое создание кода с помощью MakerBundle
Это были основные изменения, добавим немного магии. Теперь зависимости можно устанавливать по alias, например чтобы установить twig (шаблонизатор), нужно набрать следующую команду:
composer require template
В это время composer пройдет в Symfony Recipes Server и если найдет там подходящий "рецепт", то скачает и установит его, параллельно обновив зависмость в файле symfony.lock, по аналогии с composer.lock
В Symfony 4, появляется такое понятие как packets . Это репозиторий с единственный файлом composer.json . Его удобство в том, чтобы подключить к себе полноценную orm на проект, не нужно подключать несколько зависимостей, достаточно подключить packet. Например пакет orm-packet , с помощью него сразу подключаются все необходимые бандлы с необходимыми версиями.
- doctrine/orm
- doctrine/doctrine-bundle
- doctrine/doctrine-migrations-bundle
И что важно, они не будут конфлитковать между собой. Если же нужно изменить версии бандлов, то пакет нужно удалить с помощью команды:
composer unpack orm
Если вам помогла статья, пожалуйста перейдите по одному из рекламных блоков, расположенных на сайте. Таким образом вы поддержите проект. Спасибо