http://wiki.pear.php.net/index.php/PEAR2_Standards
To put it politely - what a pile of crap! ;)
I've been using re-locatable pear installs for years! -
http://www.akbkhome.com/svn/akpear/make_pearball.sh
The reality is that almost no packages depend on data files, and hence are usable in this way.
For the other stuff, It's been debunked about half a dozen times on the list. I would suggest you remove as it doesnt offer much more a good fire-starter for a flamewar ;)
LOL
Alan
* PEAR currently uses require_once in nearly each file to include dependencies. This works fine, but is too slow for high-traffic pages for two reasons:
o require_once needs to traverse the whole include path until it found the correct file. This leads to at least doubled disk usage when searching for the files compared to the single access that is needed if you specify the full path.
o Checking if the file has been included only once is expensive
That's a genuine problem.
* A common problem when beginning with PEAR is setting up include path which is required for pear to work at all.
IMO, if a person is unable to set up include_path, then we must encourage him not to use PEAR. ;]
Unzip and go
I think that "unzip-and-go" is an Extremely Bad Idea. We'll be overwhelmed with bogus bug reports from people who are unable to resolve their dependencies manually. These, by the way, will be the same people who are unable to set up their include_path.
Now that I have a better understanding of what we are trying to achieve, I'd like to present a solution that looks better to me:
* Create a PEAR2_Loader class that'll take care of loading files / classes
* Disallow direct inclusion of files in packages via include[_once] / require[_once]
* All inclusions should go through
PEAR2_Loader::loadClass('classname');
or
PEAR2_Loader::loadFile('filename');
* PEAR2_Loader will also provide an __autoload() implementation for PEAR2 classes.
* PEAR2_Loader may be configured to use include_path / not use include_path / make loadClass() a no-op (if called from hypothetical allfiles.php)
* Instead of directly using an allfiles.php, PEAR2_Loader may have a loadPackage() convenience method.