protected static function closeDatabaseConnection()
 {
     if (RedBeanDatabase::isSetup()) {
         RedBeanDatabase::close();
         assert('!RedBeanDatabase::isSetup()');
     }
 }
 /**
  * Set a global configuration value by module name and key
  */
 public static function setByModuleName($moduleName, $key, $value)
 {
     assert('is_string($moduleName)');
     assert('is_string($key)');
     if (!RedBeanDatabase::isSetup()) {
         return null;
     }
     $metadata = $moduleName::getMetadata();
     $metadata['global'][$key] = $value;
     static::cacheValue($moduleName, $key, $value);
     $moduleName::setMetadata($metadata);
 }
 public static function close()
 {
     // TODO - find out if there is a proper way.
     ZurmoRedBean::$toolboxes = array();
     ZurmoRedBean::$toolbox = null;
     ZurmoRedBean::$redbean = null;
     ZurmoRedBean::$writer = null;
     ZurmoRedBean::$adapter = null;
     ZurmoRedBean::$associationManager = null;
     ZurmoRedBean::$extAssocManager = null;
     ZurmoRedBean::$exporter = null;
     ZurmoRedBean::$tagManager = null;
     ZurmoRedBean::$currentDB = '';
     ZurmoRedBean::$f = null;
     ZurmoRedBean::close();
     self::$isSetup = false;
 }
 /**
  * Saves application state in persistent storage(database).
  * @param mixed $state state data (must be serializable).
  */
 public function save($state)
 {
     if (RedBeanDatabase::isSetup()) {
         ZurmoConfigurationUtil::setByModuleName('ZurmoModule', 'globalState', serialize($state));
     }
 }