/**
* Configures the facade, want to have a new Writer? A new Object Database or a new
* Adapter and you want it on-the-fly? Use this method to hot-swap your facade with a new
* toolbox.
*
* @param ToolBox $tb toolbox to configure facade with
*
* @return ToolBox
*/
public static function configureFacadeWithToolbox(ToolBox $tb)
{
$oldTools = self::$toolbox;
self::$toolbox = $tb;
self::$writer = self::$toolbox->getWriter();
self::$adapter = self::$toolbox->getDatabaseAdapter();
self::$redbean = self::$toolbox->getRedBean();
self::$finder = new Finder(self::$toolbox);
self::$associationManager = new AssociationManager(self::$toolbox);
self::$redbean->setAssociationManager(self::$associationManager);
self::$labelMaker = new LabelMaker(self::$toolbox);
$helper = new SimpleModelHelper();
$helper->attachEventListeners(self::$redbean);
self::$redbean->setBeanHelper(new SimpleFacadeBeanHelper());
self::$duplicationManager = new DuplicationManager(self::$toolbox);
self::$tagManager = new TagManager(self::$toolbox);
return $oldTools;
}