Re: Everyone on the road?

From: Date: Fri, 30 Jul 2004 22:05:13 +0000
Subject: Re: Everyone on the road?
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-11737@lists.php.net to get a copy of this message
I prefer using the caching to solve this problem, because according to my tests, with a fairly small amount of memory, the caching pretty much solves the problem completely. So I'm thinking that if we go with the approach of this patch, we can solve the problem with a very small amount of simple code, and get a great performance boost (without requiring any INI switches or equivalent). By the way, Sara, Wez, did you see Rasmus's email about the double stat? Do you know where it's coming from? Andi At 11:19 AM 7/25/2004 -0700, Rasmus Lerdorf wrote:
On Sun, 25 Jul 2004, Andi Gutmans wrote: I think it's going to be quite hard and not really worthwhile to add support for partial realpath(). In this case I like the kiss approach. It gives a great bang for the buck and is very simple. Well, there is another approach here. There are only 2 places where we need the full paths. The first is for the included_files list to be able to do the require_once/include_once check and the second is for the open_basedir mechanism. There are a lot of people out there who do not use open_basedir and I would guess most people looking for maximum performance wouldn't be in a situation where they needed the open_basedir feature. So the only real feature in question here is the *_once checking and even there you don't necessarily need the full path although without it you could potentially run into problems if you include the same file through 2 different relative paths or more obscurely if you deliberately change your cwd halfway through your script and include a file of the same name through the same relative path but this is not actually the same file. In both cases you are basically going out of your way to trick the _once check. At Yahoo I have been running everything with relative paths for well over a year now without any problems. So, some approaches: a. compile-time switch to disable full paths completely b. ini switch to disable full paths completely unless open_basedir is enabled c. ini switch to disable full paths from include/require but enable them
    for include_once/require_once.  That is, if you want *_once protection
    you use include_once/require_once.  If you don't, you just use
    include/require and include/require would not populate the
    included_files list.
-Rasmus


« previous php.internals (#11737) next »