Smart POST
Smart POST

Instalacja (pobieranie) Drupal 8 za pomocą Composera

Denis Peszka
Autor: Denis PeszkaFull-stack developer

W dzisiejszych czasach standardem instalacji Drupala, jest narzędzie Composer. Jest to zalecany sposób instalacji plików corowych, jak i contribowych modułów oraz motywów(themes).

Jeśli chcemy zainstalować nowy projekt, musimy to zrobić za pomocą Composera, a nie jak robiliśmy to wcześniej za pomocą narzędzia Drush lub Drupal Console. Oczywiście nadal będziemy korzystać z tych narzędzi, ale wyłącznie do instalacji modułów lub motywów, a nie do pobierania.

Główną zaletą używania narzędzia Composer jest możliwość systematycznego i przejrzystego zarządzania wymaganiami (oraz wymaganiami podrzędnych modułów), a także pewność, że jest zainstalowana poprawna i aktualna wersja każdego z modułów. Został także stworzony oficjalny projekt, który ułatwia instalację Drupala za pomocą Composera. Będziemy tworzyć nasz projekt w oparciu o ten wzór.

Instalacja Composera

Pierwszą rzeczą jaką musisz zrobić, to zainstalować Composera. Zobacz więc przewodnik, jak zainstalować to narzędzie.

Pobieranie rdzenia Drupala

Aby utworzyć nasz nowy projekt bazując na oficjalnym wzorze, musimy uruchomić następującą komendę:

composer create-project drupal-composer/drupal-project:8.x-dev folder_projektu --stability dev --no-interaction

To pobierze nam paczkę drupal-composer/drupal-project do folderu ‘folder_projektu’. Zostanie także automatycznie uruchomiona komenda composer install, która pobierze rdzeń Drupal 8 oraz wszystkie wymagane elementy.Pamiętając przy tym o zmianie ‘folder_projektu’ na prawidłową nazwę naszego projektu.

Co tak naprawdę robi ten wzór projektu?

Jeśli zainstalujemy nasz projekt w oparciu o plik composer.json, dostarczony razem ze wzorcem projektu, zobaczymy zmiany w odniesieniu do standardowego sposobu instalacji Drupala:

  • Drupal zostanie zainstalowany do folderu ‘web’,
  • autoloader został zaimplementowany, żeby używać autoloader wygenerowany przez Composera. Znajduje się on w vendor/autoload.php, gdzie autoloader Drupala znajduje się w web/vendor/autoload.php,
  • moduły (paczki typu drupal-module) zostaną umieszczone w web/modules/contrib,
  • motywy (paczki typu drupal-theme) zostaną umieszczone w web/themes/contrib,
  • profile (paczki typu drupal-profile) zostaną umieszczone w web/profiles/contrib,
  • zostaną stworzone domyśle, zapisywalne wersje settings.php oraz services.yml,
  • zostanie utworzony folder web/sites/default/files,
  • najnowsza wersja Drusha zostaje zainstalowana lokalnie, dostępna pod vendor/bin/drupal,
  • najnowsza wersja Drupal Console zostaje zainstalowana, jest dostępna pod vendor/bin/drupal,
  • tworzy zmienne środowiskowe bazująć na pliku .env.

Projekt zawiera także podstawowy plik .gitignore, w którym wykluczone są wszystkie foldery zawierające paczki instalowane za pomocą Composera. Dlatego gdy mamy aktualny plik composer.json, łatwo możemy odbudować naszą instalację Drupala.

Co jeśli nie chcę, żeby moja strona została zainstalowana w folderze web?

Załóżmy, że potrzebujemy, aby nasza strona została zainstalowana w folderze docroot/ lub public_html/.

W tym przypadku musimy ręcznie sklonować wzór projektu do naszego folderu:

git clone https://github.com/drupal-composer/drupal-project.git my_project_name_dir

Następnie przechodzimy do folderu projektu i edytujemy plik composer.json. W sekcji extras/installer-paths zmieniamy ścieżki z web/ na interesujący nas katalog. Następnie uruchamiamy komendę composer install

Skoro pobraliśmy już nasz projekt, możemy go zainstalować za pomocą Drupal Console, używając komendy drupal site:install lub przejść do naszej lokalnej strony Localhost.

Pobieranie paczek modułów oraz motywów

Pobieranie paczek ze strony drupal.org sprowadza się do jednej prostej komendy, jaką jest composer require. Kiedy chcemy, np. zainstalować moduł Pathauto musimy przejść do podstrony z obecnie najnowszą wersją dotyczącą Drupala 8.

Tam już w pierwszych linijkach znajduje się prosta komenda, którą musimy wykonać u nas w projekcie. Zasada budowy komendy sprowadza się do zapamiętania składni, jaką jest composer require: nazwa_repozytorium/nazwa_mechaniczna_paczki - nazwa_repozytorium w przypadku drupal.org to drupal, a nazwa_mechaniczna_paczki w przypadku Pathauto, to po prostu pathauto.

Po pobraniu modułu musimy go rzecz jasna zainstalować. Możemy to zrobić za pomocą komendy drupal module:install pathauto.

Aktualizacja zależności

Aktualizacja zależności odbywa się poprzez uruchomienie komendy composer update, które po przetestowaniu możemy dołączyć do naszego repozytorium git. Aby odwzorować środowisko na wersji zdalnej, musimy na serwerze uruchomić composer install- wtedy wszystkie paczki wraz z rdzeniem Drupala, zostaną pobrane do katalogu naszego projektu. Wszystko przez to, że podczas aktualizacji obecne wersje zapisywane są w specjalnym pliku composer.lock.

Podsumowując

Narzędzie Composer w znacznym stopniu przyspiesza prace związane z Drupalem oraz poprawia bezpieczeństwo. Aktualizacja zależności sprowadza się do jednej prostej komendy, a w repozytorium mamy jasny podgląd, jakie paczki modułów są w tym projekcie wykorzystywane.

Twój projekt nadal nie korzysta z dobrodziejstw, jakie dostarcza Composer? Możemy Ci pomóc dostosować projekt tak, aby zarządzanie nim było jeszcze wygodniejsze!

Masz problemy z instalacją Drupala? Możemy to zrobić za Ciebie.

Napisz do nas
Udostępnij artykuł: