Jak zainstalować Composer na Ubuntu: bezbolesny przewodnik instalacji

W trakcie tworzenia oprogramowania, niezależnie od jego stopnia skomplikowania, niezwykle często wykorzystuje się zewnętrzne biblioteki, moduły czy też komponenty. Te zewnętrzne zasoby, niezbędne do prawidłowego działania kodu, nazywamy zależnościami.

Skuteczne zarządzanie zależnościami jest kluczowe dla każdego projektu. Na szczęście istnieją specjalistyczne narzędzia, które automatyzują ten proces, ułatwiając pracę programistom. Wybór narzędzia do zarządzania zależnościami często zależy od używanego języka programowania i ekosystemu.

Jeśli piszesz aplikacje w PHP, idealnym rozwiązaniem do zarządzania zależnościami jest Composer.

Czym jest Composer?

Composer to popularne narzędzie przeznaczone do zarządzania zależnościami w projektach PHP. Inspirowane rozwiązaniami z npm (Node.js) i Bundler (Ruby), Composer pozwala na deklarowanie zewnętrznych bibliotek, od których zależy projekt, i automatyzuje proces ich instalacji oraz aktualizacji.

Dzięki Composerowi, wszelkie wymagane biblioteki są automatycznie instalowane i aktualizowane.

Warto podkreślić, że Composer nie jest menedżerem pakietów systemowych, takim jak Apt czy Yum. Zarządza on zależnościami na poziomie projektu, a nie globalnie w systemie operacyjnym. Oznacza to, że biblioteki są instalowane lokalnie, w obrębie katalogu projektu.

Composer umożliwia też precyzyjne określenie, które wersje pakietów powinny zostać zainstalowane, a także pozwala na szybką aktualizację wszystkich zależności w projekcie za pomocą jednego polecenia.

Composer jest nieodzownym narzędziem dla każdego programisty PHP. Ułatwia zarządzanie zależnościami i korzystanie z obszernego repozytorium Packagist, gdzie znajduje się ogromna ilość bibliotek PHP, które można z łatwością dodać do projektu.

Odpowiednie zarządzanie zależnościami za pomocą Composera sprzyja modułowemu projektowaniu oprogramowania, kontroli wersji i lepszej współpracy w zespołach. Pomaga uniknąć problemów ze zgodnością i ułatwia utrzymanie projektów w dobrej kondycji.

Przejdźmy teraz do procesu instalacji Composera na systemie Ubuntu. Najpierw jednak, przyjrzyjmy się wymaganiom wstępnym.

Wymagania wstępne przed instalacją Composera na Ubuntu

Aby zainstalować Composer na Ubuntu, należy spełnić następujące warunki:

1. Musisz mieć dostęp do terminala w systemie i możliwość wykonywania poleceń z uprawnieniami administratora (root).

2. W systemie musi być zainstalowana wersja PHP 7.2.5 lub nowsza. Aby sprawdzić, czy PHP jest zainstalowane, i jaka jest jego wersja, wpisz w terminalu polecenie:

php -version

Jeśli PHP jest zainstalowane, zobaczysz informację o jego wersji, na przykład taką:

Jeśli PHP nie jest zainstalowane, użyj następującego polecenia, aby je zainstalować:

sudo apt install php

3. System kontroli wersji, na przykład Git, jest wymagany. Aby sprawdzić, czy Git jest zainstalowany, użyj polecenia:

git --version

W przypadku zainstalowanego Gita zobaczysz numer jego wersji, np.:

Jeśli Git nie jest zainstalowany, użyj poniższego polecenia, aby go zainstalować:

sudo apt install git

4. Potrzebny jest także program do rozpakowywania archiwów, np. tar. Aby sprawdzić, czy tar jest zainstalowany, wpisz w terminalu:

tar --version

Jeśli tar nie jest zainstalowany, możesz go zainstalować używając polecenia:

sudo apt-get install tar

Po spełnieniu tych wymagań wstępnych możesz przystąpić do instalacji Composera.

Jak zainstalować Composer na Ubuntu

Composer można zainstalować globalnie w systemie, co umożliwia jego wywoływanie z dowolnego katalogu, lub lokalnie, tylko dla określonej instalacji PHP. Zaleca się instalację globalną.

Instalacja Composera za pomocą terminala wymaga uruchomienia skryptów ze strony pobierania Composera.

Aby zainstalować Composer globalnie w Ubuntu, wykonaj następujące kroki:

1. Otwórz terminal i użyj poniższego polecenia, aby pobrać instalator Composera do bieżącego katalogu:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

2. Następnie wykonaj polecenie, aby zweryfikować sumę kontrolną SHA-384 instalatora:

php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Suma kontrolna SHA-384 jest używana do weryfikacji integralności pobranego pliku instalatora Composera. Jest to środek bezpieczeństwa, który zapewnia, że pobrany plik nie został zmieniony lub uszkodzony.

Wykonanie tego polecenia powinno zwrócić potwierdzenie, że instalator został zweryfikowany. Możesz przejść dalej po uzyskaniu takiego wyniku.

3. Uruchom instalator za pomocą komendy:

php composer-setup.php

Po pomyślnej instalacji Composera otrzymasz stosowny komunikat.

Plik wykonywalny Composera (composer.phar) został dodany do katalogu, w którym wykonywałeś instalację.

4. Ponieważ Composer został pomyślnie zainstalowany, usuń pobrany plik instalacyjny, który nie jest już potrzebny, używając polecenia:

php -r "unlink('composer-setup.php');"

5. Aby móc wywoływać Composera z dowolnego miejsca w systemie, umieść plik composer.phar w katalogu dostępnym w zmiennej środowiskowej PATH. Zrobisz to, wpisując poniższe polecenie i podając hasło administratora, gdy zostaniesz o to poproszony:

sudo mv composer.phar /usr/local/bin/composer

6. Aby sprawdzić, czy Composer został poprawnie zainstalowany, wykonaj polecenie:

composer

Jeśli instalacja przebiegła pomyślnie, powinieneś zobaczyć informację o wersji Composera i dostępne polecenia.

Jak korzystać z Composera

Po instalacji Composera, kolejnym krokiem jest użycie go do zarządzania zależnościami. Jak wspomniano wcześniej, Composer korzysta z repozytorium Packagist, które zawiera biblioteki i pakiety, które można instalować za pomocą Composera.

Aby zobaczyć, jak działa Composer, zainstalujemy pakiet http-message, który jest interfejsem opisującym wiadomości HTTP.

Aby użyć Composera do zainstalowania http-message:

1. Utwórz nowy folder o nazwie ComposerDemo i przejdź do niego za pomocą terminala, wpisując:

mkdir composerDemo
cd composerDemo

2. Utwórz plik .gitignore w tym katalogu, wpisując:

touch .gitignore

Ten plik służy do określania, które pliki nie powinny być śledzone przez system kontroli wersji Git.

3. Wygeneruj plik composer.json dla projektu, używając polecenia:

composer init

Plik composer.json to centralny plik konfiguracyjny Composera, w którym określa się metadane projektu oraz jego zależności. Dzięki temu, Composer może automatycznie zarządzać wymaganymi bibliotekami.

Polecenie init uruchamia kreator, który poprowadzi Cię przez proces tworzenia pliku composer.json:

W pierwszym kroku, naciśnij Enter, aby zaakceptować proponowaną nazwę projektu.

4. W następnej linii wprowadź krótki opis projektu i naciśnij Enter. Możesz wkleić poniższy opis i zatwierdzić go klawiszem Enter:

A demonstration of how to use PHP Composer

5. W kolejnym kroku zostaniesz zapytany o autora – naciśnij Enter, aby zaakceptować wartość domyślną.

6. Następnie kreator zapyta o minimalną stabilność – pozostaw puste, naciskając Enter.

7. W kolejnym kroku określ typ pakietu. Wpisz project i zatwierdź Enter, tak jak pokazano na zrzucie ekranu.

8. Na pytanie o licencję, naciśnij Enter, aby pozostawić puste i przejść dalej.

9. Kreator zapyta, czy chcesz określić zależności projektu. Naciśnij Enter, aby wybrać opcję Tak. Następnie zostaniesz poproszony o wpisanie nazwy pakietu.

10. Wpisz http-message i naciśnij Enter. Spowoduje to wyszukanie pakietu i wyświetlenie wyników.

Wybierz pierwszy pakiet na liście – psr/http-message, wpisując 0 (zero) i zatwierdzając klawiszem Enter.

11. Następnie zostaniesz poproszony o określenie ograniczenia wersji (lub pozostawienie pustego, aby użyć najnowszej). Najlepiej podać wersję, którą chcemy użyć.

Aby sprawdzić najnowszą wersję pakietu, odwiedź jego stronę na Packagist. Obecnie jest to wersja 2.0.

Composer automatycznie aktualizuje pakiety. Aby uniknąć aktualizacji do wersji, która nie jest kompatybilna z obecną wersją projektu, użyj następującego zapisu, aby określić wersję pakietu:

^2.0

Spowoduje to zainstalowanie wersji 2.0 lub nowszej, o ile ta nowsza wersja jest kompatybilna wstecz.

12. Kreator zapyta, czy chcesz wyszukać kolejny pakiet – naciśnij Enter, aby przejść dalej i nie szukać dodatkowych pakietów.

13. Zostaniesz zapytany, czy chcesz zdefiniować zależności deweloperskie – naciśnij Enter. W kolejnym kroku, naciśnij ponownie Enter, aby pominąć wyszukiwanie pakietu.

14. Następnie zostaniesz zapytany o dodanie mapowania automatycznego ładowania PSR-4 – naciśnij Enter, aby pominąć.

15. Wyświetlony zostanie podgląd wygenerowanego pliku composer.json:

Naciśnij Enter, aby zatwierdzić i wygenerować plik.

16. Zostaniesz zapytany, czy chcesz zainstalować zdefiniowane zależności. Potwierdź, naciskając Enter.

17. W terminalu wpisz komendę, aby otworzyć projekt w edytorze kodu:

code .

Efekt będzie podobny do tego:

Zwróć uwagę, że plik composer.json został wygenerowany, a zależności projektu są zdefiniowane w sekcji „require”. Zainstalowane zależności są przechowywane w katalogu „vendor”.

18. Aby uniknąć śledzenia katalogu vendor, który zawiera wszystkie zależności, otwórz plik .gitignore i dodaj do niego wiersz:

/vendor/

Nie należy śledzić tego katalogu, ponieważ może on z czasem bardzo się rozrosnąć. Zamiast tego, zależności można łatwo zainstalować na podstawie pliku composer.json.

19. Aby dodać nowe zależności do projektu, zmodyfikuj sekcję „require” w pliku composer.json. Przykładowo, aby dodać pakiet log, zmień plik tak, aby zawierał następującą sekcję:

"require": {
        "psr/http-message": "^2.0",
        "psr/log": "^3.0.0"
    },

20. Aby zainstalować nową zależność, w terminalu wykonaj:

composer update

Powinieneś zobaczyć rezultat podobny do tego:

Spowoduje to dodanie pakietu, który dodano do pliku composer.json.

Od tego momentu możesz używać Composera do zarządzania zależnościami w swoich projektach PHP.

Jak zoptymalizować Composer dla lepszego zarządzania pakietami

Aby Composer działał sprawniej, precyzyjnie definiuj zakresy wersji dla zależności. Przykładem jest zapis „^2.0”, który używaliśmy wcześniej.

Unikaj bardzo szerokich zakresów, takich jak „*” (dowolna wersja). Może to prowadzić do problemów ze zgodnością i stabilnością projektu, ponieważ nie wiadomo, jaką wersję zainstaluje Composer.

Nie dodawaj też nadmiaru niestandardowych skryptów do pliku composer.json, a jedynie niezbędne. Zbyt duża liczba skryptów może znacznie spowolnić proces zarządzania zależnościami.

Aby poprawić szybkość działania Composera, włącz rozszerzenie PHP curl. Możesz również użyć wtyczek Composera, np. hirak/prestissimo, która przyspiesza instalację pakietów poprzez wykonywanie operacji równolegle.

Regularnie czyść pamięć podręczną Composera, aby usunąć nieużywane pakiety i zoptymalizować jego wydajność. Pamiętaj też, aby nie śledzić katalogu vendor. Przyspieszy to klonowanie i aktualizację repozytoriów projektu.

Jak odinstalować Composera

Jeżeli nie chcesz już używać Composera, odinstaluj go za pomocą polecenia:

sudo rm -rf /usr/local/bin/composer

Aby upewnić się, że odinstalowanie przebiegło pomyślnie, wykonaj polecenie:

composer

Po poprawnej dezinstalacji powinieneś zobaczyć informację o tym, że Composer nie jest zainstalowany:

Podsumowanie

Zarządzanie zależnościami jest kluczowym aspektem w procesie tworzenia oprogramowania. Ułatwia unikanie konfliktów wersji i zapewnia utrzymanie porządku w projekcie. Efektywne zarządzanie zależnościami pomaga w modułowym tworzeniu oprogramowania i ułatwia współpracę w zespołach programistycznych. Jeśli tworzysz aplikacje w języku PHP, Composer to niezbędne narzędzie, które warto wykorzystać w swoich projektach.

Zachęcamy do zapoznania się z informacjami o tym, czym jest Ubuntu PPA i jak go zainstalować.