Stut wrote: > Richard Heyes wrote: >>> You use a session variable for that? >> >> Why not? > > Because it's not user data, it's server data. > >>> That's entirely the wrong place to >>> store something like which database API is installed. >> >> Not really. You could even wrap a function called (for example) >> Feature() around it. > > Yeah, really. Sessions are for user data. If it's the same for all > users then it doesn't belong in the session, it belongs in a server-wide > cache. > >>> It should a class >>> variable or global configuration variable. Heck, I'd say it's more >>> appropriate to do extension_loaded( 'mysqli' ) on every call than to use >>> a session variable. >> >> Why? It's very unlikely to be changing between calls. And even if it >> does, it's once in a blue moon. Granted though, I can't see it being a >> particularly intensive function call, so I can't see the harm in >> calling it on every invocation. > > AFAIK a call to extension_loaded is pretty cheap, but if you really feel > the need to cache it between requests the best place to store it would > be in a file on the server. However, I'd expect a stat on that file will > be more expensive than calling extension_loaded. the on disk file could be [re]generated automatically when the server is started up by the application and dumped onto tmpfs or even not stored as a file at all but directly in memory using apc or something similar either way I agree it's a server wide setting that is garanteed not change as long as the webserver is not restarted - atleast I can't see an extension becoming available 'just like that' ... going on the basis that dl() should be illegal ;-) - actually it is not available if your using a threaded webserver (who does?) and as of php6 not webserver SAPI implements dl() not to mention safe_mode which also disables it. > > -Stut > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php