
Symfony Flex: що це?
17.04.2019 18:20 | Symfony
Можна було б намагатися придумати якийсь свій опис, але офіційна документация досить хороша. Тому тут наведу уривки, які допоможуть зрозуміти що уявляє собою 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
Успіхів!