2014-09-10 2 views
3

В документах Laravel указано, что вы можете включить memcached в качестве обработчика сеанса в app/config/session.php; однако он не указывает, где настроен memcached (например, используемые серверы).Где хранится конфигурация Laravel для memcached session driver?

Я вижу, что вы можете настроить memcached в app/config/cache.php, но я не знаю, используется ли это только для драйвера Cache или для обработчика сеанса.

ответ

7

Да, конфигурация в app/config/cache.php для ваших драйверов кеша используется также для драйвера сеанса.

Посмотрите на vendor/laravel/framework/src/Illuminate/Session/SessionManager.php. Метод, который создает экземпляр Memcached водителя сессии это один

/** 
* Create an instance of the Memcached session driver. 
* 
* @return \Illuminate\Session\Store 
*/ 
protected function createMemcachedDriver() 
{ 
    return $this->createCacheBased('memcached'); 
} 

Этот метод вызова этого другого метода в том же файле

/** 
* Create an instance of a cache driven driver. 
* 
* @param string $driver 
* @return \Illuminate\Session\Store 
*/ 
protected function createCacheBased($driver) 
{ 
    return $this->buildSession($this->createCacheHandler($driver)); //$driver = 'memcached' 
} 

Который называет этот другой метод в том же файле

/** 
* Create the cache based session handler instance. 
* 
* @param string $driver 
* @return \Illuminate\Session\CacheBasedSessionHandler 
*/ 
protected function createCacheHandler($driver) 
{ 
    $minutes = $this->app['config']['session.lifetime']; 

    return new CacheBasedSessionHandler($this->app['cache']->driver($driver), $minutes); 
} 

Там вы можете увидеть: this->app['cache']->driver($driver), который на самом деле получить драйвер кэша из контейнера IoC

+2

Спасибо. Было бы здорово, если бы документы упомянули об этом. :-) – ScottSB

Смежные вопросы