2014-09-10 89 views
3

Laravel文檔指定您可以在app/config/session.php中啓用memcached作爲會話處理程序;但是,它並未指定memcached本身的配置位置(例如要使用的服務器)。Laravel在哪裏存儲memcached會話驅動程序的配置?

我看到你可以在app/config/cache.php中配置memcached,但我不知道它是否僅用於緩存驅動程序或會話處理程序。

回答

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 2014-09-12 13:11:20