PEAR is short for
"PHP Extension and Application Repository" and
is pronounced just like the fruit.
The purpose of PEAR is to provide:
A structured library of open-source code for PHP users
A system for code distribution and package maintenance
A standard style for code written in PHP,
specified here
The PHP Extension Community Library (PECL),
see more below
A web site, mailing lists and download mirrors to support the
PHP/PEAR community
PEAR is a community-driven project governed by its developers.
PEAR's governing bodies are subdivided into the
PEAR Group,
Collectives, and a President.
PEAR's constitution (adopted in March 2007)
defining these groups is documented here.
The PEAR project was founded in 1999 by Stig S. Bakken
and quite a lot
of people have joined the project.
PEAR's mission is to provide reusable components, lead innovation in
PHP, provide best practices for PHP development and educate developers.
The code in PEAR is partitioned in
"packages".
Each package is a separate project with its own development team,
version number, release cycle, documentation
and a defined relation to
other packages (including dependencies).
Packages are distributed as gzipped tar files
with a description file inside,
and installed on your local system using the
PEAR installer.
Packages may relate to each other through explicit dependencies,
but there is no automatic dependency relationship between packages
based on the package name.
For example, "HTTP_Post" is by default
independent of "HTTP".
Dependencies between packages with similar names is not forbidden,
and does happen.
As an example,the "DB_DataObject" package
depends on the "DB" package.
A style guide, the PEAR Coding
Standards (short PCS), exists to ease collaboration
between PEAR developers, to enforce quality, and to enforce
a consistent visual appearance of all source code distributed as
a PEAR package.
All PEAR packages are registered in and downloaded
from a central server at pear.php.net.
Other third-party servers called "channels"
also distribute packages that can be installed by the PEAR Installer,
see the
Channels list for more information.
pear.php.net does not endorse the packages from these channels,
and only provides support for packages distributed
from pear.php.net.
Pear.php.net provides both a human-friendly (HTML) and
machine-friendly (currently REST)
interface to the packages available from pear.php.net.
All communication occurs over the HTTP protocol.
Other functions the pear.php.net site provides are:
Packages are distributed as a gzipped tar file with an XML description
file inside.
The description file
(package.xml)
contains some information about the package,
a list of files and their roles, and dependencies.
PECL
PECL (pronounced "pickle") is a separate project
that distributes PHP extensions (compiled code written in C, such
as the PDO extension).
PECL extensions are also distributed as packages and can be installed
using the PEAR installer with the pecl command.
More information and all PECL
packages can now be found on the PECL
homepage.