encyklopedia.space

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:

  1. Utworzyć publiczne repozytorium na jednej z obsługiwanych platform (np. GitHub).
  2. Dodać do repozytorium plik composer.json zgodny ze specyfikacją Composer.
  3. Zalogować się na stronie packagist.org i wybrać opcję „Add package”.
  4. Podać adres URL repozytorium; Packagist pobierze i zindeksuje metadane.
  5. 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.

Zobacz też