Chris Renner has put together a new post showing how to use the Zend_Registry component of the Zend Framework to make your session variables easier to get to globally from other parts of your application (and standardize their access).
I've been using $_SESSION like this for a couple of years, and I've known the whole time it was a band-aid approach to solve the problem. Such an approach is not an ideal "design pattern." Though it passes my baseline rule - it works - there are downsides. [...] I refactoring my main app with Zend_Registry in place of my rat's nest of $_SESSION['config']['foo'] and such...which is mostly just things like email addresses for the system admin (me) and other global variables that may come in handy in any script or method.
He talks about how storing values in the session (especially configuration settings) is a bit of "Gerrymandered code" and that the Zend_Registry features allow you to completely replace the need for working directly with $_SESSION. To replace his current functionality, though, he still needed to work with the session values. The result? A wrapper class that has methods for getting and setting to make things a bit more clean.