There are quite a few reasons to start playing with the new PEAR package manager – named Pyrus. The first of which is that it is filled with PHP 5 goodness, utilizing many features of the SPL. And secondly, PEAR2 is just around the corner and these are exciting times for PHP development.
- PHP >= 5.3 (I believe you need libxml > 2.6.16, but could use some help verifying this)
- SQLite Extension, should be included by default (sudo apt-get install php5-sqlite)
The first thing we need to do, is create a temporary directory to checkout the PEAR2 files from the repository:
Note: In case you haven’t heard, PEAR2 source files are in subversion at http://svn.pear.php.net/PEAR2
svn co http://svn.pear.php.net/PEAR2
Great, now you have a copy of the latest files for Pyrus and PEAR2. (r 314 when this was written).
The following packages are the backbone of the new package manager:
PEAR2_Developer (if you’d like to build some PEAR2/Pyrus installable packages)
The PEAR2 channel is not available yet, but we can install the individual packages in Pyrus by using their respective package.xml files within the svn checkout.
Before we install the new packages, let’s create a directory to place our Pyrus installation. Previously, users would create a system PEAR install in /usr/share/pear or similar, or a local PEAR install in ~/pear/. And at this point, you would have to make a decision you might have to live with for the rest of the installed packages’ lives. But, don’t worry! With PEAR2 we can move this Pyrus managed installation later if needed.
Note: it is important to change the directory to where you wish to install the packages as the current directory will be used as the default install location for pyrus commands.
Now let’s install some packages
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install ~/PEAR2_SVN/PEAR2/Autoload/trunk/package.xml
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install ~/PEAR2_SVN/PEAR2/Exception/trunk/package.xml
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install ~/PEAR2_SVN/PEAR2/HTTP_Request/trunk/package.xml
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install ~/PEAR2_SVN/PEAR2/Pyrus/trunk/package.xml
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install ~/PEAR2_SVN/PEAR2/Pyrus_Developer/package.xml
Now you have Pyrus and all the necessary dependencies installed!
To get started, you can create your PHP files which reference the PEAR2 autoloader by using:
How to create a PEAR2 package
The source layout is as follows:
; maintainers of PackageName
Brett Bieber [saltybeagle] <email@example.com> (lead)
$a = new PEAR2_Pyrus_Developer_PackageFile_PEAR2SVN(dirname(__FILE__), 'PEAR2_MyNewPackage');
Then run the file to generate the package.xml and install your package:
php ~/PEAR2_SVN/PEAR2/Pyrus/trunk/pyrus.phar install PackageName/package.xml
Some api docs for Pyrus - http://ucommbieber.unl.edu/workspace/Pyrus/docs/
Note: The latest copy of this document is available at http://docs.google.com/Doc?id=dgtbrg66_50d5c68d