On Wed, Jan 5, 2011 at 4:27 PM, Nathan Nobbe <quickshiftin@xxxxxxxxx> wrote: > On Wed, Jan 5, 2011 at 3:40 PM, Paul Halliday <paul.halliday@xxxxxxxxx>wrote: > >> Say you have 10 or so scripts and a single config file. If you have >> main.php, functions1.php, functions2.php, functions3.php.. >> >> Does is hurt to do an include of the config file in each separate >> script, even if you only need a few things from it, or should you >> just specify what you want with a 'global' within each >> script/function? >> > > touching on what Nicholas said this could be handled in OOP via the > singleton pattern, however there are ways of dealing w/ it in global > function land as well. > > i see 4 immediate options > . load config from each file (performance hit mitigated if config is a php > array and using opcode caching) > . global variable > . session storage > . config fetching function w/ static variable > > the last option is the one i'd like to describe since i think its the > cleanest, even if you have opcode caching enabled. the function would look > something like this > > function load_config() > { > static $cachedConfig = null; > > if($cachedConfig !== null) > { > // load file and store value(s) in $cachedConfig > } > > return $cachedConfig; > } > > now all you have to do is make load_config() available in all your files, > via something like require_once on the file which defines load_config(). > the result is the configuration will only be read once on a given page > load, thereafter its contents will come from memory. > > this is actually very similar to the singleton approach in OOP. > > -nathan > UMM, check that, the conditional should read if($cachedConfig === null) { // load config file :) $cachedConfig = $someValue; // ... } my bad, lol! -nathan