Symfony Flex - это новый способ установки и управления приложениями Symfony. Данный пакет заменяет Symfony Installer и Symfony Standard Edition. Flex автоматизирует самые общие задачи - установку и удаление бандлов, а также других зависимостей Composer. Пакет работает с Symfony 3.3 и выше, а начиная с 4-й версии используются по умолчанию, хотя это и не является обязательным требованием.
Symfony Flex - это плагин Composer, который изменяет поведение команд require, update и remove. При установке или удалении зависимостей в приложении с поддержкой Flex, Symfony может выполнять некие задачи до и после выполнения задач Composer.
Возьмём следующую команду:
composer require orm-fixturesЕсли попытаться выполнить эту команду в приложении, которое не использует Flex, получим ошибку Composer-а о том, что название пакета не валидно (поскольку используется алиас вместо полного названия). Однако, если установлен Flex, то и DoctrineFixturesBundle будет успешно установлен и интегрирован. В этом случае, когда Вы выполняете composer require, приложение сначала обращается на сервер Symfony Flex и:
.gitignore)Flex записывает информацию об установленных пакетах в файл symfony.lock. Этот файл нужно добавить в ваш git-репозиторий.
Рецепты Symfony Flex предоставляются сообществом и хранятся в двух публичных репозиториях:
И напоследок. Symfony опубликовал так называемый "skeleton" - минимальный проект, который рекомендуется для создания новых приложений. Этот "скелет" уже включает Flex в качестве зависимости. Другими словами, вы можете создать приложение Symfony с поддержкой Flex, выполнив команду:
composer create-project symfony/skeleton my-new-projectОфициальная документация: Using Symmfony Flex to Manage Symfony Applications
Сервер рецептов: Symfony Recipes Server
| Команда | Описание |
| composer recipes | список всех установленных рецептов и тех, которые имеют обновления |
| composer recipes symfony/framework-bundle | детальная информации об указанном рецепте |
| composer recipes:install symfony/framework-bundle --force -v | обновить указанный рецепт. Примечание: не выполняется никакого интеллектуального “обновления” вашего кода, вместо этого процесс обновления повторно устанавливает последнюю версию рецепта, что означает, что ваш код будет полностью переопределен. После обновления рецепта вам нужно тщательно выбрать, какие изменения вы хотите оставить/отменить. |
composer recipes:update | обновить один из рецептов (команда покажет список рецептов и даст выбрать нужный) |
| composer recipes:update symfony/framework-bundle | update a specific recipe |
| composer sync-recipes --force | безоговорочно запустить все рецепты снова для всех пакетов |
| composer update symfony/flex --no-scripts --no-plugins | обновить Flex без каких-либо доп. действий |
О том как написать свой рецепт, написано здесь.
Успехов!