PEAR (ang. PHP Extension and Application Repository) – framework i system dystrybucji rozszerzeń do języka PHP. Został rozpoczęty w 1999 roku przez Stiga S. Bakkena i w krótkim czasie dołączyło do niego wiele osób, które teraz tworzą społeczność zarządzającą projektem. Głównymi założeniami jego projektu było dostarczenie programistom PHP kolekcji otwartoźródłowych rozszerzeń i prostego systemu ich dystrybucji w postaci tzw. paczek. W przeszłości zaliczało się do tego również PECL, które w 2003 roku stało się samodzielnym projektem.
Sposób dystrybucji
Na PEAR składa się wiele małych paczek, zawierających kod źródłowy lub binaria, specyficzne dla danego środowiska. Każda z tych paczek jest osobnym projektem, prowadzonym przez grupę programistów, posiada własną dokumentację i zdefiniowane zależności między nią a innymi paczkami. W PEAR występuje drzewo paczek, w którym każdy z węzłów (kategorii) jest częścią nazwy paczki. Przykładowo HTML_Javascript jest paczką, znajdującą się w kategorii HTML, wspomagającą tworzenie prostych skryptów w JavaScripcie.
Wszystkie paczki są wysyłane i utrzymywane na serwerze (pear.php.net), który udostępnia HTML-owy i XML-owy interfejs do ich przeglądania. Poza tym serwer zajmuje się zarządzaniem użytkownikami, paczkami i ich wydaniami.
Paczki są dostępne w postaci archiwów tar, spakowanych gzipem, które zawierają plik XML-owy z opisem zawartości i zależności.
Występuje też prosty sposób na automatyczne instalowanie paczek poprzez skrypt:
$pear install Event_Dispatcher
Polecenie to ściągnie i spróbuje zainstalować paczkę Event_Dispatcher w naszym systemie.
Kategorie
- Authentication - uwierzytelnianie
- Benchmarking - testy wydajnościowe
- Caching - zarządzanie pamięcią podręczną
- Configuration - pliki konfiguracyjne
- Console - operacje na konsoli
- Database - operacje na bazach danych
- Date and time - data i czas
- Encryption - szyfrowanie
- Event - zarządzanie zdarzeniami
- File Formats - operacje na plikach(kompresja, archiwizowanie, etc.)
- File System - operacje na plikach(szukanie, usuwanie, etc.)
- Gtk Components(2) - moduły do obsługi GTK+
- HTML - analiza składniowa (parsing), generowanie HTML-a
- HTTP - obsługa protokołu HTTP
- Images - operacje na grafice
- Internationalization - komponenty, związane z wielojęzycznością (tłumaczenie, kodowanie, etc.)
- Logging - logowanie zdarzeń
- Mail - obsługa protokołów związanych z pocztą
- Math - operacje matematyczne
- Networking - komponenty, związane z siecią
- Numbers - komponenty, związane z zamianą liczb na słowa
- PEAR - komponenty, związane z PEAR (obsługa błędów, aktualizacje, etc.)
- PHP - komponenty, związane z analizą składniową kodu PHP
- Processing - przetwarzanie tekstu
- Science - komponenty, związane z nauką
- Semantic Web - komponenty, związane z Semantic Web
- Streams - operacje na strumieniach
- Structures - operacje na strukturach danych
- System - operacje na systemie operacyjnym
- Text - operacje tekstowe
- Tools and Utilities - różne narzędzia
- Validate - sprawdzanie poprawności
- Web Services - usługi sieciowe (Amazon.com, eBay, etc.)
- XML - operacje na XML-u