This should be a general landing page for thoughts on and debate about removing globals.
Should we refactor to remove all global variables and other couplings with global state ($_SESSION, $_REQUEST, singleton pattern, etc)? We can do this by:
- Encapsulting request in a request object
- Instantiate master Horde object (e.g. $horde = new Horde($config);)
- InstantiateApplicationObjectRefactoring
- Page handling become method object (e.g. $page = new Turba_BrowsePage($app, $request); $page->execute();)
--Jason
- Instantiation of the Horde object doesn't make sense to me because it introduces another global object. And why is using a static Horde class bad?
- Usage of $_SESSION makes a lot of sense to me, because it is very clear that we are dealing with session state. Encapsulating this in a class or object obfuscates the code.
--Jan