RE: [PEAR-DEV] include path solution?

From: Date: Thu, 07 Nov 2002 11:43:01 +0000
Subject: RE: [PEAR-DEV] include path solution?
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-10538@lists.php.net to get a copy of this message
Lukas Smith smith@dybnet.de _______________________________ DybNet Internet Solutions GbR Reuchlinstr. 10-11 Gebäude 4 1.OG Raum 6 (4.1.6) 10553 Berlin Germany Tel. : +49 30 83 22 50 00 Fax : +49 30 83 22 50 07 www.dybnet.de info@dybnet.de > -----Original Message----- > From: Stig S. Bakken [mailto:ssb@fast.no] > Sent: Thursday, November 07, 2002 7:59 AM > To: Lukas Smith > > > I still prefer the constant solution because it gets rid of the include > > path search. Besides eating performance I remember hearing one of the > > bytecode folks mentioning that they also create issues with caching. > > > > Using the constant will of course require an upgrade to every PEAR > > package, but its not a huge change and its easy to do with the pear > > installer .. much easier than upgrading php ... > > Why would you want to use a constant? > I described this in an earlier mail. Basically this constant can be defined by the user. If it is not set then it will be set by each package as an empty string and therefore it will use the include path. Every package will make their includes as follows: PEAR_INCLUDE_PATH.DIRECTORY_SEPERATOR.[old include] For example a driver would be included like so: require_once PEAR_INCLUDE_PATH.'/MDB/mysql.php'; in factory script of every package (in the case of MDB that would be MDB.php and Manager.php) you would have something like this: if(!defined(PEAR_INCLUDE_PATH)) { define('PEAR_INCLUDE_PATH ', ''); } This way we would stop using the include paths which are slow, but we also ensure that *_once always gets the same relative path passes so it does not re-include files that have been included before. I forgot to ask one of the bytecode cache developers if they can even handle fiels from the include path correctly (dunno who mentioned that this might be a problem). So that would be another important reason to not use the include path and instead use a constant as I described above. Again this would require that all packages would need to be upgraded at some point. I would do the modifications for any package that I want to use. And I am sure that the other people, like Wolfram, Markus etc who also need a solution for this, will help out as well doing it for the packages that they want to use. So all in all this is also a favourable solution for the BC perspective since everybody who uses the old packages obviously does not need this feature and also does not need to change anything when they do upgrade at some point (since the PEAR_INCLUDE_PATH defaults to ''). For all the others they get this functionality without having to rely on a feature that is often turned off or that was just introduced in the latest php version. Regards, Lukas

« previous php.pear.dev (#10538) next »