Время летит неумолимо быстро! Казалось, вот только запланировал серию статей о Symfony 2 и Silex, но с течением времени все поменялось: Symfony team зарелизила версию 3, потом 4, а Silex с выходом Symfony 4 использовать уже просто нецелесообразно (подробнее здесь) и вы скоро сами поймете почему.
Symfony Flex - это новый путь установки и управления Symfony приложениями. Этот подход был анонсирован с выходом Symfony 4. Это не новая версия Symfony, но инструмент, который призван заменить Symfony installer и Symfony Standard Edition. Symfony Flex автоматизирует наиболее частые задачи Symfony приложений, такие как установка и удаление бандлов и других компонентов. Symfony Flex работает начиная с Symfony 3.3 и выше, а начиная с Symfony 4.0, Flex используется по умолчанию, но не является обязательным к использованию.
Как работает Flex
К примеру, если в проекте мы будем отсылать электронную почту, то всё, что нужно, это только перейти в папку с проектом и набрать команду:
~$ cd my-project
~/my-project$ composer require mailer
Если вы выполните эту команду в Symfony проекте, который не использует Flex, вы увидете composer error, который гласит, что "mailer" не является валидным именем существующего пакета. На самом деле Flex хранит на своих серверах специальные рецепты, которым соответствуют алиасы (по этим алиасам в итоге и определяется пакет, необходимый для установки). То есть в нашем случае Flex отсылает на свой сервер алиас "mailer", сервер определяет, что этому алиасу соответвует пакет SwiftmailerBundle и возвращает рецепт для его установки (recipe), также будут выполнены все соответствующие данному пакету автоматизированные таски.т
Flex сохраняет всю информацию об установленных рецептах в файле symfony.lock, который нужно закомитить в репозиторий системы контроля версий.
Для удаления ранее установленного пакета все так же используем алиас:
~$ composer remove mailer
Как использовать Flex в новом проекте
Вместе с Flex команда разработчиком Symfony подготовила новый skeleton-app для нас, установить который можно следующий образом:
~$ composer create-project symfony/skeleton todo-app 3.4 # по умолчанию устанавливается последняя версия Symfony
# конкретную версию можно указать последним агрументом
~$ composer create-project symfony/website-skeleton todo-app
Стоит отметить, что использовать symfony installer не рекомендуется с момента релиза Symfony 3.3. Для все новых проектов используйте composer команду create-project.
Полезные рецепты Flex
~$ composer require server --dev # установка привычного Symfony сервера для разработки (web-server-bundle)
~$ composer require mailer # установка банда для отправки email
~$ composer require annotation # для использования аннотаций в роутах и не только
~$ composer require annot
~$ composer require twig # установка шаблонизатора twig
~$ composer require phpunit --dev # установка phpunit
~$ composer require orm # установка orm-pack для использования doctrine
~$ composer require migrations # установка бандла для управления миграциями
~$ composer require debug-pack --dev # для отображения панели отладки
Этот список полезных рецептов планируется расширять по мере нахождения / вспоминания других полезных. Начинайте использовать Symfony c Flex и оцените их по достоинству!