/** * Creates new instance of Hybrid cache driver * * @param string $slow (optional) Name of "slow" driver, if null the best available driver will be choosen * @param string $fast (optional) Name of "fast" driver, if null the best available driver will be choosen * @param array $slow_params (optional) Initialization parameters for slow driver * @param array $fast_params (optional) Initialization parameters for fast driver * @return vivvo_cache_Hybrid */ public static function factory($slow = null, $fast = null, array $slow_params = array(), array $fast_params = array()) { if ($slow == null) { if (defined('VIVVO_SYSTEM_CACHE_DRIVER_SLOW')) { $slow = VIVVO_SYSTEM_CACHE_DRIVER_SLOW; } else { $priorities = array_keys(self::$slow_drivers); rsort($priorities); foreach ($priorities as $priority) { if (vivvo_cache::is_supported(self::$slow_drivers[$priority])) { $slow = self::$slow_drivers[$priority]; break; } } } } if ($fast == null) { if (defined('VIVVO_SYSTEM_CACHE_DRIVER_FAST')) { $fast = VIVVO_SYSTEM_CACHE_DRIVER_FAST; } else { $priorities = array_keys(self::$fast_drivers); rsort($priorities); foreach ($priorities as $priority) { if (vivvo_cache::is_supported(self::$fast_drivers[$priority])) { $fast = self::$fast_drivers[$priority]; break; } } } } return new self(array('slow' => vivvo_cache::get_instance($slow, $slow_params), 'fast' => vivvo_cache::get_instance($fast, $fast_params))); }