Загалом справа тут таке, взагалі цю статтю я не планував і взагалі навіть не знав про це. Хотів написати про одне, поліз в інше, а виявилося ось це :) Тому можуть бути неточності, так як з композер раніше серйозно стикатися не доводилося.
Особливо вдаватися в подробиці по роботі з композер я не буду, він вже не молодий, відомий по ньому купа гайдів в мережі, я буду описувати лише в рамках 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 більш функціональні.