6.0.0-beta13
4/14/26

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