On Sat, 2010-09-18 at 12:21 -0400, chris h wrote: > When you really NEED a global resource I'm a fan of a registry class. It's > a little slower but not noticeable in most cases. > > With a registry you can store all global data in a single, controlled area. > You can also store arrays and resources instead of just strings. One down > side to most registry classes is that it's not truly "constant" data, but > with magic methods you can correct that. > > > In this class you can store values globally, and once they are set they > can't be easily changed. > > myRegistry::get()->test = array('abc','xyz'); > myRegistry::get()->test = 1234; > > echo myRegistry::get()->test[1]; // should echo 'xyz' > > > I just typed this up real quick so there may be errors; but if you want to > try it, it should at least give you the just of it. > -------------untested code---------------- > class myRegistry { > > private $_Data = array(); > > static private $_Object = null; > > > static public function get () { > > if( !( self::$_Object instanceof self )) > self::$_Object = new self(); > > return self::$_Object; > > } > > > private function __construct () { } > > > public function __get ($name) { > > if (isset( $this->_Data[$name] )) > return $this->_Data[$name]; > > return null; > > } > > > public function __set ($name, $value) { > > if (isset( $this->_Data[$name] )) > return false; > > return $this->_Data[$name] = $value; > > } > > } > ------------------ > > On Thu, Sep 16, 2010 at 10:50 AM, tedd <tedd.sperling@xxxxxxxxx> wrote: > > > At 8:46 AM -0400 9/15/10, Peter van der Does wrote: > > > >> Hi, > >> > >> How do you people store data that doesn't change, an example of this > >> would be the version number of your software. You might want to use it > >> through out your program but how to you store it? > >> > >> As far as I can see there are several options to use this data. > >> 1. Global Variable > >> 2. Store it in a registry class > >> 3. Store it in a named constant. > >> 4. Use a function that will return the data (kind of like a regsitry > >> class but it's not a class) > >> > >> Personally I don't like option 1 but what about the other options. Is > >> any of them faster then the others. What other pros and cons are there. > >> > > > > Make it's a Constant -- it's simply a Global that doesn't change. > > > > I typically hold such things in a global configuration file that can be > > included when needed. > > > > Cheers, > > > > tedd > > > > -- > > ------- > > http://sperling.com/ > > > > > > -- > > PHP General Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > You might want to add in some error returns from the setters instead of just false, as attempting to overwrite a real constant would issue a notice. Thanks, Ash http://www.ashleysheridan.co.uk