I guess the main difference between static and singleton would depend on whether you needed significant code in the constructor.
On 11/07/2011 11:16 AM, Mac Newbold wrote: > The idea of using a singleton object is sounding nice to me, but I'm > wondering how one avoids having to either pass it around everywhere, > or reinstantiate the object (even though you're going to get back the > same singleton reference) everywhere you want to use it. > > For example, take global configuration data. It would be nice to have > something like $conf->url accessible everywhere, but to get $conf, I > either have to do $conf=new Config(), assuming Config is a singleton > class, or pass in $conf when I create any object, catch it in the > constructor and set it to a class variable, then use $this->conf->url > everywhere instead. > > Am I missing something? Is there a good way to get around either of those? > > The idea of using static class methods kind of appeals to me, so I can > use Conf::url() anywhere without having to pass around variables or > instantiate a Config class all over. Using a magic method like > __call() the Conf class could even be set up so that it returns the > value of the corresponding class variable when an unknown function is > called, so you wouldn't have to set up a function for every config > variable you wanted to be able to retrieve. > > Mac > > On Mon, Nov 7, 2011 at 10:59 AM, Michael<[email protected]> wrote: >> On 11/7/2011 10:39, Wade Preston Shearer wrote: >>> What are the groups thoughts on use of the $GLOBALS superglobal and using >>> the global command to pull variables into scope? Are there times when using >>> these are considered good practice or would good architecture always >>> provide an alternate solution (such as passing the variable into the >>> function)? >> I've almost always been able to avoid globals when writing >> object-oriented web applications. However, it was a question I also >> contemplated recently when trying to decide the best way to make my >> application configuration settings globally accessible (so I'd be >> interested to hear people's preferred method on that as well). The >> singleton approach that Walt mentioned seems the most appropriate to me, >> so far. >> >> What situation are you considering using globals for? >> >> Mike >> >> >> >> >> _______________________________________________ >> >> UPHPU mailing list >> [email protected] >> http://uphpu.org/mailman/listinfo/uphpu >> IRC: #uphpu on irc.freenode.net >> > > _______________________________________________ UPHPU mailing list [email protected] http://uphpu.org/mailman/listinfo/uphpu IRC: #uphpu on irc.freenode.net
