コード例 #1
0
ファイル: Hybrid.php プロジェクト: ahanjir07/vivvo-dev
 /**
  * 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)));
 }