Drupal 8 робота з composer

Загалом справа тут таке, взагалі цю статтю я не планував і взагалі навіть не знав про це. Хотів написати про одне, поліз в інше, а виявилося ось це :) Тому можуть бути неточності, так як з композер раніше серйозно стикатися не доводилося.

Особливо вдаватися в подробиці по роботі з композер я не буду, він вже не молодий, відомий по ньому купа гайдів в мережі, я буду описувати лише в рамках Drupal сайту.

Установка ядра через composer

Якщо у вас чистий проект, то простіше ядро ​​відразу тягнути через композер, робиться це дуже просто

UPD Установка ядра через create-project досить специфічна річ і далеко не кожному сподобається \ підійде. При такій установці, ядро ​​ставиться в вендор, і соответстенно, вам доведеться змінювати налаштування веб-сервера, бо index.php файл в корені не буде, він буде в /vendor/drupal/index.php (точно не пам'ятаю), отже сайт навіть НЕ заведеться. Краще ставити ядро ​​по-старому - скачав, закинув, або свій composer.json який поставить в корінь, а вже далі все встановлення та оновлення модулів і ядра робити виключно композер.

підключення репозиторіїв

UPDНе знаю точно коли таке з'явилося, але починаючи з 8.3.x + дані репозиторії підключені з коробки в ядрі і поставляються вже відразу в composer.json. Підключати на нових проектах його вже не потрібно.

Не важливо як ви встановлювали сайт. Через Composer, з архіву, через Драша, взагалі ніякої різниці немає, всі вони містять в корені файлик composer.json і вимагають додаткових дій для використання composer по повній програмі.

Для повноцінної роботи потрібно підключити репозиторії Drupal.org, так як за замовчуванням вони не підключені, ви не зможете встановлювати проекти з drupal.org, так як композер їх просто не знайде. Все за принципом репозиторіїв в Linux, якщо ви, звичайно, знайомі з цим підходом.

Додавання Drupal.org сховища в Composer

З огляду на спіціфіку апдейтів модулів, найоптимальнішими будуть ^ 1.0 і

1.0. Так як в Drupal модулі не можуть мати третій параметр в версії, наприклад, 1.1.2, то ставити модулі через

1.1 - це равновсільно відмови від оновлень модуля, тобто версія зафіксується на мінорній 1.1 і при виході 1.2 композер її НЕ завантажить, що позбавлене сенсу. І відповідно доведеться писати

1.0. що в свою чергу, рівносильно ^ 1.0 - а що вже писати вирішувати вам. Особисто на мене, варіант ^ 1.0 краще.

Найбільше про версії, як їх вказувати і як вони себе ведуть на офіційному сайті composer.

видалення пакетів

Все дуже просто, виконується це однією командою і це видаляє як прописану залежність, так і фізично модуль. Але будьте вкрай обережні, адже спочатку треба видалити модуль з Друпал, а вже потім фізично.

В ув'язненні

Також варто зазначити що даний підхід не обов'язковий. але якщо ви підхопите модуль з залежностями через композер, ви як мінімум його повинні будете закачати через композер. Встановлювати всі модулі через нього, або ж тільки з composer.json де прописані залежності - на ваш розсуд. На drupal.org немає ніяких конретік з цього приводу. На даний момент це надається як варіант організації проекту, репозиторії знаходяться в бета режимі і деякі можливості composer ще не підтримуються. Наприклад, семантичні версії. Але це офіційна можливість починаючи з 8.1 і для всіх наступних версій. Відповідно через це модуль Composer Manager для Drupal 8 deprecated.

Залишайся на зв'язку

Будь завжди в курсі нових матеріалів! Підписуйся на канали \ паблік \ розсилки щоб отримувати оперативні оповіщення.

Тут весь говнокод.

Приймаю всіх в друзі.

Спостерігаю, зрідка пишу.

Нормальний у них дизайн!

Заходжу для репоста.

Зате який алиас!

Старо і надійно.

Думаю, варто розвивати.

Моє поточне притулок - Telegram. У ньому я не тільки кросспощу, а також проводжу опитування, кидаю цікаві, і не дуже, посилання і новини.

Композер потрібен тільки якщо пишеш / ставиш модуль використовує ліби з packagist.org. Для іншого поки не потрібен, drush + drush make більш функціональні.

Схожі статті