Symfony Flex: що це?

Symfony Flex: що це?

Можна було б намагатися придумати якийсь свій опис, але офіційна документация досить хороша. Тому тут наведу уривки, які допоможуть зрозуміти що уявляє собою Symfony Flex і навіщо він потрібен.

Отже:

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 і:

  • якщо немає ніякої інформації про пакет, що встановлюється, Flex сервер нічого не повертає і виконуються звичайні процедури Composer
  • якщо ж така інформація є, Flex повертає файл так званий recipe (рецепт / інструкція) і додаток використовує його для того, щоб вирішити який пакет встановити і які автоматичні завдання запустити після інсталяції. Рецепти можуть додавати конфігураційні файли, створювати директорії, а також змінювати деякі файли (наприклад, .gitignore)

Flex записує інформацію про встановлені пакети в файл symfony.lock. Цей файл потрібно додати в ваш git-репозиторій.

Рецепти Symfony Flex надаються спільнотою і зберігаються в двох публічних репозиторіях:

  • Головний репозиторій рецептів - являє собою список офіційних рецептів для підтримуваних якісних пакетів. За замовчуванням Flex дивиться тільки в цей репозиторій
  • Репозиторій рецептів Contrib - тут містяться рецепти, створені спільнотою. Всі вони гарантовано працюють, але пов'язані з ними пакети можуть не підтримуватися. Перед установкою будь-якого з цих пакетів Symfony запитає вашого дозволу

І на останок. Symfony опублікував так званий "skeleton" - мінімальний проект, який рекомендується для створення нових додатків. Цей "скелет" вже включає Flex в якості залежності. Іншими словами, ви можете створити додаток Symfony з підтримкою Flex, виконавши команду:

composer create-project symfony/skeleton my-new-project

 

Офіційна документація: Using Symmfony Flex to Manage Symfony Applications

Сервер рецептів: Symfony Recipes Server

Успіхів!