/** * 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; }