Promocja: pl – od 10 zł | eu – od 10 zł | com – od 20 zł

Composer na serwerach CloudHosting

Czym jest Composer?

Composer jest narzędziem służącym do zarządzania pakietami i zależnościami aplikacji, które są pisane w języku PHP. Dostępny jest on w formie komendy wiersza poleceń (poprzez SSH). Jego działanie można w pewnym stopniu porównać z aplikacją Npm, używaną w środowisku Node.js, czy też z aplikacją Bundler, używaną w języku Ruby.

Najważniejsze komponenty aplikacji, takie jak np. frameworki czy biblioteki, pogrupowane są w tzw. paczki. Informacje o paczkach są wykorzystywane przez Composer’a, którego uruchomienie pozwala na pobranie wszystkich niezbędnych pakietów. Nierzadko Composer pozwala na zainstalowanie określonej aplikacji (wówczas paczka, oprócz frameworków i/lub bibliotek zawiera także samą aplikację).

WAŻNE! Ponieważ na serwerze można korzystać z różnych wersji PHP, ma to wpływ także na system zarządzania pakietami dla języka PHP. Composer uruchamiany jest zawsze w wersji, która zostaje automatycznie dobrana do wykorzystywanej na serwerze wersji PHP (np. jezeli korzystamy z PHP 7.4, to Composer jest uruchamiany w wersji odpowiedniej dla PHP 7.4 itd.).

Plik composer.json

Przyjrzyjmy się przykładowi użycia narzędzia Composer z aplikacją WordPress, dla której zdefiniujemy pakiet wtyczek lub szablonów, jakie automatycznie zostaną umieszczone w katalogu /wp-content/plugins lub /wp-content/themes, bez konieczności ręcznego ich pobierania.

Aby móc korzystać z Composera, należy utworzyć etykietę w postaci pliku JSON o nazwie composer.json, która pobierze paczkę z najnowszą wersją aplikacji WordPress. W naszym przykładzie instalacja aplikacji znajduje się w katalogu /wordpress.

Przykładowy plik composer.json:

{
     „require”: {
          „johnpbloch/wordpress”: „>=5.5”
     },
     „extra”: {
          „installer-paths”: {
               „wp-content/plugins/{$name}/”: [
                    „type:wordpress-plugin”
               ],
               „wp-content/themes/{$name}/”: [
                    „type:wordpress-theme”
               ]
          },
          „wordpress-install-dir”: „wordpress”
     },
     „repositories”: [
          {
               „type”: „composer”,
               „url”: „https://wpackagist.org”
          }
     ]
}

Przedstawiony, przykładowy plik, zawiera elementy:

  • require – podaje się tu nazwy pakietów, które mają zostać pobrane; wartość należy podać w formacie „autor/nazwa”: „wersja”; dopuszczalne jest również stosowanie tzw. wildcardów, czyli pobranie wersji, np. „>=5.5”;
  • extra – w tym miejscu można skonfigurować niestandardowe ścieżki intalacji pobranych zasobów jak, np.: ustawić odrębną ścieżkę dla szablonów WordPressa czy wtyczek oraz nazwę katalogu instalacji;
  • repositories – wskazuje na typ repozytorium oraz adres URL, z którego mogą być pobrane paczki, jak np. skorzystanie z repozytoriów GIT czy prywatnych; w przypadku użycia Composera przy pracy z WordPressem należy pamiętać, że system nie tworzy oficjalnego repozytorium, dlatego też, w podanym przykładzie wykorzystano John Bloch Composer Repo; zalecane jest zachowanie szczególnej ostrożności podczas korzystania z nieoficjalnych repozytoriów danych, które nie są powiązane z wydawcą oprogramowania.

Przedstawiony przykład zawiera jedynie kilka podstawowych elementów. Composer pozwala na wykonanie dużo większej ich ilości.

Sposób użycia Composera

Composer, na hostingu nazwa.pl, dostępny jest jako narzędzie systemowe, a więc nie ma konieczności dodatkowego wyszukiwania jego ścieżki dostępu na SSH. Wystarczy przygotować plik composer.json i rozpocząć instalację pakietów w tym katalogu, w którym plik composer.json został umieszczony.

Wdrożenie composer.json

Gdy plik composer.json został prawidłowo przygotowany, należy uruchomić go poprzez polecenie:

composer.phar install

Wywołanie tego polecenia spowoduje utworzenie pliku composer.lock (jeśli nie został wcześniej utworzony) oraz wyświetlenie poniższego komunikatu:

     No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 3 installs, 0 updates, 0 removals
     – Locking johnpbloch/wordpress (5.5.3)
     – Locking johnpbloch/wordpress-core (5.5.3)
     – Locking johnpbloch/wordpress-core-installer (2.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
     – Installing johnpbloch/wordpress-core-installer (2.0.0): Extracting archive
     – Installing johnpbloch/wordpress-core (5.5.3): Extracting archive
     – Installing johnpbloch/wordpress (5.5.3): Extracting archive
Generating autoload files

Przy pierwszym użyciu, Composer pobiera wybraną paczkę z zewnętrznego zasobu zdefiniowanego w require. Dla kolejnej instalacji zostanie wczytana jej wersja z cache (jeżeli wersje będą zgodne). Pobrane paczki zostaną skopiowane do katalogu vendor. Po instalacji, zostanie utworzony plik composer.lock, w którym znajdą się informacje o aktualnie zainstalowanych paczkach i ich wersjach. Należy pamiętać, że pliku composer.lock nie można edytować.

Aktualizacja composer.json

Aktualizację zdefiniowanej wcześniej paczki wykonać można poprzez polecenie:

composer.phar update

W wyniku tej komendy wyświetlony zostanie komunikat, który w tym wypadku oznacza, że wszystkie pliki są aktualne.

Loading composer repositories with package information
Updating dependencies

Nothing to modify in lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
Table of Contents