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-sourced 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 with the
PEAR Group as the
governing body. The project has been founded by Stig S. Bakken in
1999 and quite a lot
of people have joined the project since then.
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.
There are two types of packages: source packages (containing
source files only), and binary packages (containing
platform-specific binary files, and possible source files).
Installing source packages with C code obviously requires a C
build environment.
PEAR defines a package tree, where each
"node" in the tree is
represented by a part of the package name. The nodes are
organized by simple descriptive topics, and each part is
separated by an underscore. Examples of package names are
"MP3_Id", "Archive_Tar"
and "HTTP_Post".
Packages may relate to each other through explicit dependencies,
but there is no automatic relation between for example a package
and its "parent" in the package tree
(for example, "HTTP_Post" is
by default independent of "HTTP").
A few top-level nodes in the package tree called
"sub-repositories" have special functions,
currently these are
PECL and Gtk. For each of these, different
rules apply, see more in the description of each sub-repository
below.
A style guide, the PEAR Coding
Standards (short PCS), exists to ease collaboration
between PEAR developers, to help quality and portability, and to
help PEAR contributors to provide consistent-looking-and-feeling
APIs.
All PEAR packages are registered in and uploaded to a central
database available at pear.php.net. Open-sourced
third-party packages may also be registered and uploaded.
Closed-source packages may be installed by the PEAR installer,
but the PEAR database is for open-source code only.
Pear.php.net will provide both a human-friendly (HTML) and
machine-friendly (currently XML-RPC) interface to the PEAR
database. Package downloads are done with plain HTTP.
Other functions the pear.php.net site will provide are:
Packages are distributed as a gzipped tar file with an XML description
file inside. The description file contains some information
about the package, a list of files and their roles, and dependencies.
PECL
PECL (pronounced "pickle") used to be a
sub-repository of PEAR for
C extensions "à la" those distributed
with PHP 4, in fact, having
somewhere to move extensions to from PHP was one of the
motivations when creating PECL. Extensions in PECL follow PHP's
coding standards rather than PEAR's, but they are distributed and
installed as PEAR packages.
The process of moving an extension from PHP to PECL is referred
to as "pickling".
In October 2003 PECL has become an independent project, which
does not belong to PEAR anymore. (Except for the infrastructure,
which PECL borrows from PEAR.) More information and all PECL
packages can now be found on the PECL
homepage. During the PECL spin-off, the project has also
been renamed from "PHP Extension Code Library" to
"PHP Extension Community Library".
Gtk
Gtk packages are packages that provide software which uses the
technology of the PHP-GTK
project. Code in this sub-repository follows PEAR's
coding standards.