Reasons:
- 7 parameters for a method with lots of pass by reference
implies the need to save state, i.e. use an object
- cleaner code. download() can be easily split into 4 separate but related methods
- Installer.php is now exclusively used for installation
- future extensibility: switching to channels or local package repositories from
using PEAR_Remote is easy. Simply extend the API for PEAR_Downloader:
no changes needed to the installer at all
to install for testing purposes, use
pear upgrade --force package-PEAR-new-Downloader.xml
to uninstall, use
pear upgrade --force package-PEAR.xml