Russell Walker has a post on his site sharing some suggestions about effectively dealing with global data in your PHP applications.
Almost every web application needs to handle global data. There are certain things that just have to be available throughout the entire code base, such as database connections, configuration settings, and error handling routines. As a PHP developer, you may have heard the mantra 'globals are evil', but this naturally begs the question 'what should I use instead of global variables?'
He includes four different options (five including the actual use of global variables):
- Static classes
- Dependency injection
For each of the options he includes summaries of both the advantages and disadvantages as well as some sample code showing their use. Ultimately, he points out that it's up to the developer of the application which option fits best.