This document was issued on 4th November 2003 and describes which directory structure must be used in PEAR packages. The goal of this document is to unify the directory naming in SVN and after installations.
Let's assume we have a package
The_Package_Name that contains one or more
with some documentation (perhaps a
copies of RFCs, etc.), a battery of test
scripts (unit tests, regression tests, etc.), and it uses some
data files (localization strings, etc.), the dir tree would look
The_Package_Name |-- Name (contains Module.php) |-- data |-- docs | `-- examples |-- misc |-- scripts `-- tests
Name refers to the last part of the
The_Package_Name, all subclasses of the main
class, should be put in there or subdirectories of it. You can
refer to http://svn.php.net/viewvc/pear/packages/Cache_Lite/trunk/ - the
Lite as an example (this basically
documents what we currently do anyway).
directories are optional, because it will not make sense to have
them for every single package in PEAR.
The directories that are required are
tests. A package may have no extra
documentation, but it should have at least one example. There
must also be some basics test to be able to verify that the
package is working. The preferred type of testing script system
to use is PHPUnit or .phpt. But for now we would be content with
any sort of test script.
scripts will be installed into a
directory available in
$PATH, such as
Anything that does not fit any of the above categories is placed
Maintainers are expected to modify their existing packages to match this new standard.