A PEAR a "PHP Extension and Application Repository" rövidítése, kiejtése megegyezik az angol "körte" szóval (pear, píör). A PEAR céljai:
A PEAR egy közösség által működtetett projekt, vezetősége a PEAR csoport (PEAR Group). A projektet Stig S. Bakken 1999-ben alapította, azóta rengetegen csatlakoztak hozzá.
A PEAR-ban lévő kód csomagokra van bontva. Minden csomag egy különálló projekt a saját fejlesztőcsapatával, verziószámával, dokumentációjával és kapcsolataival a többi csomaghoz (beleértve a függőségeket). A csomagok gzip-elt tar fájlokként kerülnek terjesztésre egy-egy leírófájllal együtt, és a PEAR telepítő (installer) segítségével kerülnek telepítésre egy rendszerre.
A csomagoknak két típusa van: forráscsomagok (csak forrásnyelvi fájlokat tartalmaznak), és bináris csomagok (platform-specifikus bináris fájlokat tartalmaznak, és tartalmazhatnak forrásnyelvi fájlokat is). C nyelvi forráscsomagok telepítése magától értetődően C build környezetet igényel.
A PEAR egy csomag-fát határoz meg, ahol minden egyes csomópont egy csomag nevének egy-egy része. A csomópontoknak egyszerű, értelemszerű nevük van. A csomagok nevében az egyes részeket hangosközzel (underscore, "_") választjuk el egymástól. Csomagnevek például az "MP3_Id", "Archive_Tar" és a "HTTP_Post".
A csomagok explicit függőségeken keresztül kapcsolatban állhatnak egymással, ugyanakkor egy csomag és a fában lévő szülője között nincs kötelezően kapcsolat (például a "HTTP_Post" nem függ a "HTTP" csomagtól).
A fában néhány felsőszintű csomópontot alraktárnak (sub-repository) nevezünk, mivel speciális funkciók vannak. Ezek jelenleg a PECL, a Gtk és az App. Mindegyikükre különböző szabályok érvényesek, bővebben lásd az egyes alraktárak leírásánál, lejjebb.
A PEAR Coding Standards (rövidítve PCS), egy kódolási szabvány (stíluskalauz), amely a PEAR fejlesztők közötti együttműködést hivatott megkönnyíteni. Célja a minőség és a hordozhatóság elősegítése, és a PEAR közreműködőknek segítségnyújtás konzisztens API-k fejlesztéséhez. A PFC-ben lévő csomagokra szigorúan érvényes, a nem-PFC csomagok kevésbé veszik szigorúan.
Minden PEAR csomag regisztrálva van és fel van töltve a központi adatbázisba, amely a pear.php.net címen érhető el. Nyílt forrású, harmadik fél által készített (third-party) csomagok is regisztrálásra kerülhetnek, és feltölthetők. Zárt forrású csomagok is telepíthetők a PEAR telepítő segítségével, de a PEAR adatbázis csak nyílt forrású programoknak ad helyet.
A pear.php.net mind felhasználóbarát (HTML), mind "gép-barát" (jelenleg XML-RPC) interfészt nyújt a PEAR adatbázishoz. A csomagok letöltése egyszerű HTTP protokollon keresztül történik. A pear.php.net site által nyújtott további funkciók:
A csomagokat gzipelt tar fájlokban terjesztik egy-egy leíró fájllal (XML) együtt. A leíró fájl információkat tartalmaz magáról a csomagról, tartalmaz továbbá egy fájllistát a benne lévő fájlok szerepével, valamint egy leírást a függőségekről.
A PHP Foundation Classes a PEAR egy részhalmaza; minőségre, általánosításra, interoperabilitásra (együttműködés) és kompatibilitásra fókuszál. Ha a PHP továbbra is folytatja a PEAR csomagok szállítását a saját telepítőkészletén belül, akkor a PFC-t fogja szállítani.
A fókusz a minőségen azt jelenti, hogy stabilnál (stable) alacsonyabb állapotban lévő csomagok (releasek) nem lehetnek a PFC-ben.
Az általánosítás jelentése: a csomagok az indokoltnál jobban ne legyenek specifikusak semmilyen környezethez sem (pl. a HTML kimeneti formátumhoz, egy operációs rendszerhez, egy webszerverhez vagy egy SAPI-backend-hez stb).
Az együttműködésre kiélezett (interoperable) csomagok helyesen együttműködnek más csomagokkal, stabil, szabványosított API-juk van, előnyben részesítenek más, jól megírt (és interoperábilis) komponenseket, valamint jól működnek különböző környezetekben (PHP verziók, SAPI backend, operációs rendszerek stb.)
A kompatibilitás a korábbi verzióktól eltérően nem csak a megegyező szintaxis támogatásáról és a szemantikáról szól, hanem az előre tervezésről is. Az így tervezett kódot egyszerű lenne (vagy legalábbis lehetséges) továbbfejleszteni olyan igényekkel, melyek valószínűleg később jelentkezhetnek majd (előre-kompatibilis kód).
PECL
PECL (ejtve "piköl") a PEAR al-raktára C-bővítményeknek, melyek a PHP 4-el kerültek terjesztésre. A PECL létrehozásának egyik motivációja az volt, hogy a PHP-ből át kellett valahová helyezni a bővítményeket (extensions). A PECL-ben lévő bővítmények a PHP kódolási szabványát követik a PEAR szabványok helyett, de PEAR csomagokként kerülnek szállításra és telepítésre.
A PHP-ből PECL-be történő bővítmény-áthelyezést nevezzük "pickling"-nek.
2003 októberében a PECL egy független projektté vált, ami nem tartozik többé a PEAR-hez (kivéve az infrastruktúra, amit a PECL a PEAR-től kölcsönöz). További információk, valamint az összes PECL csomag megtalálhatók a PECL honlapján. A PECL kiválása során a projekt átnevezésre került "PHP Extension Code Library"-ről "PHP Extension Community Library"-re.
Gtk
A Gtk csomagok a PHP-GTK projekt technológiájára épülő csomagok. A PHP-GTK alraktárban lévő kód a PEAR kódolási szabványokat követi.
Jelenleg nincs végleges terv arról, hogy hogyan jelennek majd meg a Gtk csomagok a PEAR-ban.
App
TBD