# PHP Extension and Application Repository

PHP Extension and Application Repository (PEAR) ist eine Bibliothek (oft engl. Library) von Modulen und Erweiterungen für die Skriptsprache PHP. Jeder Entwickler kann eigene Module via PEAR vertreiben, sofern er diese unter eine der fünf zugelassenen Open-Source-Lizenzen stellt. Ins Leben gerufen wurde PEAR 1999 durch Stig S. Bakken, seit August 2003 obliegt die Schirmherrschaft des Projektes der PEAR Group.

## Anwendung

Die PEAR-Bibliothek bietet Skripte und Referenzimplementierungen, die Standardlösungen für Anwendungsgebiete in der Entwicklung von PHP-Applikationen anbieten. Entwickler finden hier eine Anlaufstelle, um nach freien Implementierungen zu suchen, die erfolgreich im Einsatz sind. PEAR ist in Bezug auf PHP vergleichbar mit PyPi für Python oder dem Projekt CPAN für Perl.
Die Programmmodule und Erweiterungen verkürzen den Entwicklungsprozess von PHP-Anwendungen erheblich, da sie dem Programmierer viele Standard-Aufgaben abnehmen. Hierdurch wird auch ein höheres Maß an Sicherheit bei der Anwendungsentwicklung erzeugt, da der Entwickler auf qualitätsgesicherte Standardkomponenten zurückgreift.
PEAR folgt dem Prinzip des oben erwähnten CPAN-Modells, das aus Perl bekannt ist: Es gibt Basisobjekte und Pakete, die Wiederverwendung in den Bibliotheken finden und Redundanzen in der Softwareentwicklung vermeiden.
Die einzelnen in PEAR enthaltenen Projekte (im Kontext von PEAR „Pakete“, engl. packages) werden von Einzelpersonen oder kleinen Entwickler-Gruppen nach einheitlichen Standards erstellt, weiterentwickelt, getestet und die Qualität gesichert.
PEAR enthält unter anderem Module zur Authentifizierung von Benutzern, für Caching, Datenbankzugriffe, Verschlüsselung, Konfiguration, HTML, Web Services, XML-RPC und XML.
Alle Projekte stehen als Open Source zur Verfügung und können mit dem PEAR-Installer (der bei aktuellen PHP-Versionen seit 4.3.0 mitgeliefert wird) sehr einfach auf dem eigenen Webserver installiert werden. PEAR bietet Installationsmechanismen, die per Kommandozeile Pakete verwalten können (hinzufügen, erneuern, entfernen). Somit lassen sich Abhängigkeiten in den genutzten Paketen kontrollieren und einheitliche Systemarchitekturen werden ermöglicht.
Für ältere PHP-Versionen steht ein gesondertes Installationsverfahren für den Installer bereit.
Bei den PHP: Reader’s Choice 2008 belegte PEAR zusammen mit dem Zend Framework den ersten Platz in der Kategorie Bestes PHP-Framework.

## PEAR2 Pyrus

Mit Pyrus wurde ein Versuch unternommen, PEAR für PHP ab Version 5.3 von Grund auf neu zu entwerfen und zu verbessern. Pyrus kann genutzt werden, um Pakete aus PEAR channels zu installieren. Die letzte Version von Pyrus wurde im März 2011 veröffentlicht, die Weiterentwicklung wurde allerdings offenbar aufgrund der Popularität von Composer eingestellt.

## PEAR und Composer

Mit Composer gibt es eine Alternative zum Verwalten von Paketabhängigkeiten eines PHP Projekts. Composer unterstützt dabei auch die Installation von PEAR Paketen. Es gibt Stimmen in der PHP Community, die empfehlen, zugunsten von Composer keine weiteren PEAR Pakete zu veröffentlichen.

## PECL

Die PHP Extension Community Library (PECL, Aussprache wie das englische pickle) ist ein ehemaliger Teil von PEAR, die nur C-Erweiterungen anbietet. Sie wurde im Oktober 2003 aus PEAR ausgegliedert und wird nun als eigenständiges Projekt fortgeführt.
Die PECL-Pakete sind stark systemabhängig, da sie auf C basieren. So werden für Microsoft Windows und für Linux jeweils die systemeigenen Shared Libraries benutzt.