Input can come from three sources:
- local files (archives or package.xml)
- remote files (downloadable urls)
- abstract package names
The first two elements are handled cleanly by PEAR_PackageFile, but the third requires
accessing pearweb's xml-rpc interface to determine necessary dependencies, and the
format returned of dependencies is slightly different from that used in package.xml.
This class hides the differences between these elements, and makes automatic
dependency resolution a piece of cake. It also manages conflicts when
two classes depend on incompatible dependencies, or differing versions of the same
package dependency. In addition, download will not be attempted if the php version is
not supported, PEAR installer version is not supported, or non-PECL extensions are not
installed.