Programiści, pracujący w języku PHP, są zmuszeni do częstego powtarzania tych samych czynności przy zadaniach związanych z obsługą zewnętrznych zasobów. Z pomocą przychodzą im narzędzia umożliwiające zarządzanie zależnościami, do których należy Composer. Jak działa i dlaczego warto z niego korzystać? Kiedy przydaje się właścicielom witryn opartych na WordPressie? Zapraszamy do lektury!
Na czym polega zarządzanie zależnościami
Informatyk, budując stronę i administrując nią, jest najczęściej zmuszony do używania zewnętrznych programów lub narzędzi. Ma to miejsce na przykład przy korzystaniu z frameworków opartych na JavaScript i CSS czy też klas PHP pozwalających połączyć witrynę z zewnętrznymi usługami, takimi jak media społecznościowe. Klasycznym sposobem na realizację tego zadania jest pobranie odpowiednich kodów, skopiowanie ich do swojego projektu, a następnie skonfigurowanie ich wywołania w PHP. W przypadku zewnętrznych narzędzi należy pobrać oprogramowanie, a gdy zachodzi potrzeba jego aktualizacji, powtórzyć całą ścieżkę, zastępując poprzednią wersję nowszą.
Procesy te są bardzo czasochłonne i żmudne. Jest to tym bardziej dostrzegalne, jeśli musimy przeprowadzić ich wiele w tym samym czasie. Wykorzystanie narzędzi do zarządzania zależnościami może zautomatyzować pobieranie zewnętrznych zasobów, dzięki określeniu standardowych algorytmów, które ich dotyczą. Zmniejsza to ilość pracy, ryzyko opóźnień podczas projektów czy liczbę możliwych błędów.
Co to jest Composer?
Composer zaliczany jest do menedżerów zależności dla języka PHP. Dzięki niemu programista może zarządzać w jednym miejscu relacjami pomiędzy aplikacją a zewnętrznymi pakietami i bibliotekami. Odciąża go to od czasochłonnych i żmudnych czynności pobierania aktualizacji. Composer jest pod tym względem inspirowany takimi rozwiązaniami, jak npm z Node.js czy Bundler z Ruby. Jako alternatywę dla Composera można uznać menedżera pakietów PEAR, który traci jednak na popularności wśród programistów PHP. Wynika to z przestarzałego kodu PEAR oraz tego, że instaluje pakiety w całym systemie, a nie u podstawy projektu. Mogą w związku z tym pojawiać się problemy na przykład w sytuacjach, gdy jeden z projektów jest oparty na starszym pakiecie.
Zalety Composera dostrzeżemy w sytuacji, gdy używa się go w projekcie, który jest zależny od wielu bibliotek. Narzędzie pozwala nam zadeklarować te z nich, które mają zostać zainstalowane. Następnie można zaktualizować biblioteki za pomocą jednego polecenia. Dzięki Composerowi webmaster zyskuje pewność, że wszystkie używane biblioteki są aktualne. Nie jest on wówczas skazany na żmudne przeszukiwanie zależności oraz instalowanie najnowszych wersji oprogramowania. Aby aktualizować zewnętrzne zasoby, Composer korzysta z repozytorium Packagist. Znajdują się w nim setki pakietów, zatem nie ma potrzeby wskazywać narzędziu lokalizacji, w której powinno szukać konkretnego zasobu. Narzędzie automatycznie odwołuje się do Packagist.
Composer na serwerach CloudHosting
Composer jest domyślnie dostępny na wszystkich serwerach CloudHosting. Uruchamia się go w formie komendy wiersza poleceń, czyli poprzez SSH. Dla każdej aplikacji, z którą ma być wykorzystany, należy zdefiniować zależność projektu w pliku composer.json, a następnie zadeklarować odpowiednie biblioteki, używając polecenia require. Wskazanie konkretnej wersji biblioteki nie jest jedyną metodą na dokonanie aktualizacji. Można użyć także kodów rozszerzających zakres instalowanych wersji. Służą do tego między innymi:
- Operatory “<”, “>”, “>=”, i “<=”
Dzięki nim możemy określić, że wymagamy instalacji na przykład wersji wyższej niż 3,5 („> 3,5”) czy wersji pomiędzy 3,5 a 4,5 („> 3,5 <= 4,5”).
- Łączniki
Za ich pomocą określamy zakres wersji, które mają zostać zainstalowane, na przykład 3,5-4,5.
- Tyldy
Tyldy pozwalają określić, jaka najniższa wersja zasobu jest wymagana (na przykład ~3,5), co oznacza, że nie zostaną zainstalowane wersje nowsze.
Composer i WordPress
Composer umożliwia zainstalowanie WordPressa jako zależności w projekcie. Można za jego pomocą również instalować, aktualizować i usuwać wtyczki, co automatyzuje i upraszcza ten proces. Podobnie, jak w przypadku wtyczek, Composer pozwala na zarządzanie motywami WordPressa, zapewniając ich spójność i aktualność. Centralne zarządzanie konfiguracją projektu realizowane jest przez wspomniany plik composer.json. Dla przykładu, chcąc zainstalować jakąś wtyczkę, wystarczy dodać do niego w sekcji require odpowiednie wpisy, używając repozytoriów, takich jak WordPress Packagist, i uruchomić polecenie ‘composer install’.
„require”: {
„wpackagist-plugin/woocommerce”: „^7.0”
},
„repositories”: [
{
„type”: „composer”,
„url”: „https://wpackagist.org”
}
]
}
Mając już taki plik composer.json z odpowiednią definicją require, aktualizację wymienionych w nim wtyczek można wykonać poleceniem ‘composer update’. Jeżeli chcemy zaktualizować tylko niektóre z wtyczek wymienionych w pliku json, w poleceniu trzeba podać nazwę wtyczki, na przykład:
Jeżeli z pliku json, z sekcji require usunięta zostanie zdefiniowana wcześniej wtyczka, wykonanie polecenia ‘composer update’ spowoduje usunięcie jej również z konfiguracji WordPressa.
Composer – oszczędność czasu i poprawne działanie projektu
Jak widać na powyższych przykładach, korzystanie z Composera potrafi znacznie ułatwić życie nie tylko programistom PHP, lecz także użytkownikom WordPressa. Możliwość automatyzacji procesów związanych z zależnościami szczególnie docenią osoby, które administrują wieloma witrynami i zmuszone są do instalacji i aktualizacji wielu bibliotek. Narzędzie sprawia, że zawsze można korzystać z najnowszych wersji zasobów. Dzięki implementacji Composera w określonych projektach zyskuje się pełną kontrolę nad działaniem obsługi bibliotek.
Composer jest wyjątkowo efektywnym narzędziem dla każdego programisty stron i aplikacji internetowych, które warto implementować w swoich projektach, by oszczędzać czas oraz zabezpieczyć się przed własnymi niedopatrzeniami przy obsłudze zależności. Composer jest dostępny na każdym serwerze CloudHosting.