Packagist
Packagist to ogólnodostępny rejestr pakietów oprogramowania dla języka programowania PHP. Działa jako domyślne repozytorium dla menedżera zależności Composer, umożliwiając programistom wyszukiwanie, publikowanie i instalowanie bibliotek oraz komponentów PHP w prosty sposób.
Historia
Projekt Packagist został uruchomiony w 2012 roku jako część inicjatywy mającej zredukować bariery w dystrybucji kodu open‑source w ekosystemie PHP. Za jego powstanie odpowiadają Nicolas Guglielmetti oraz Jakob Schulz, którzy w tym samym czasie pracowali nad rozwojem Composer.
Budowa i zasada działania
Packagist opiera się na kilku kluczowych elementach:
- Repozytorium Git – każdy pakiet udostępniany w Packagist jest przechowywany w publicznie dostępnych repozytoriach GitHub (lub innych platformach VCS, takich jak GitLab czy Bitbucket).
- Plik
composer.json– opisuje metadane pakietu (nazwę, wersję, zależności, autoryzację, licencję itp.). Packagist odczytuje te informacje i indeksuje je w swojej bazie danych. - API HTTP – pozwala narzędziom takim jak Composer pobierać informacje o dostępnych pakietach oraz ich wersjach w czasie rzeczywistym.
Funkcje
Packagist oferuje szeroki zakres funkcji ułatwiających zarządzanie zależnościami:
- Wyszukiwanie pakietów po nazwie, słowach kluczowych, autoryzacji lub licencji.
- Automatyczne aktualizacje wersji – po wypuszczeniu nowej wersji w repozytorium, Packagist aktualizuje swój indeks w ciągu kilku minut.
- Statystyki pobrań – każdy pakiet posiada wykres pobrań, pozwalający ocenić jego popularność.
- Wsparcie dla wersjonowania semantycznego (SemVer), co umożliwia precyzyjne określanie zakresów wersji.
- Integracja z platformą Travis CI oraz innymi usługami CI/CD w celu automatyzacji testów przy publikacji nowej wersji.
Proces publikacji pakietu
Aby opublikować własny pakiet w Packagist, należy wykonać następujące kroki:
- Utworzyć publiczne repozytorium na jednej z obsługiwanych platform (np. GitHub).
- Dodać do repozytorium plik
composer.jsonzgodny ze specyfikacją Composer. - Zalogować się na stronie packagist.org i wybrać opcję „Add package”.
- Podać adres URL repozytorium; Packagist pobierze i zindeksuje metadane.
- Po każdej zmianie w repozytorium (nowy tag, aktualizacja
composer.json) wywołać webhook, aby Powiadomić Packagist o aktualizacji.
Statystyki i znaczenie w ekosystemie PHP
Do 2023 roku Packagist zgromadził ponad 220 tysięcy pakietów, które łącznie zostały pobrane ponad 12 miliardów razy. Dzięki temu jest najważniejszym źródłem komponentów w środowisku PHP, zastępując starsze rozwiązania takie jak PEAR czy Zend Framework.
Bezpieczeństwo i audyt
Packagist współpracuje z narzędziem Security Advisories, które automatycznie informuje o znanych podatnościach w opublikowanych pakietach. Dodatkowo, projekt wspiera OWASP w promowaniu praktyk bezpiecznego kodowania.