Instalacja (pobieranie) Drupal 8 za pomocą Composera

Data dodania:

W dzisiejszych czasach standardem instalacji stron opartych o 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ą Composer’a, a nie jak robiliśmy to wcześniej za pomocą narzędzia drush lub drupal console. Oczywiście nadal będziemy korzystać z tych drusha lub drupal console, 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) oraz pewność że jest zainstalowana poprawna i aktualna wersja każdego z modułów.

Został także stworzony oficjalny projekt( https://github.com/drupal-composer/drupal-project ), który ułatwia instalację Drupala za pomocą Composer’a. Będziemy tworzyć nasz projekt w oparciu o ten wzór.

Instalacja Composer’a

Pierwszą rzeczą jaką musisz zrobić, to instalacja Composer’a. Zobacz więc przewodnik( https://getcomposer.org/doc/00-intro.md ) jak zainstalować to narzędzie.

https://avatars2.githubusercontent.com/u/9769826?s=400&v=4

 

drupal composer

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

Pamiętając przy tym o zmianie ‘folder_projektu’ na prawidłową nazwę naszego projektu.

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.

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 DrupalConsole zostaje zainstalowana, 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:

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

Instalacja projektu

Teraz skoro pobraliśmy już nasz projekt, możemy go zainstalować za pomocą DrupalConsole używając komendy drupal site:install lub przejść do naszej lokalnej strony(http://localhost).

Pobieranie paczek modułów oraz motywów

Poberanie 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 np. https://www.drupal.org/project/pathauto/releases/8.x-1.4 

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, ponieważ 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!