【问题标题】:Where does Laravel store configuration for memcached session driver?Laravel 在哪里存储 memcached 会话驱动程序的配置?
【发布时间】:2014-11-04 10:52:34
【问题描述】:

Laravel 文档指定您可以在 app/config/session.php 中启用 memcached 作为会话处理程序;但是,它没有指定 memcached 本身的配置位置(例如要使用的服务器)。

我看到您可以在app/config/cache.php 中配置 memcached,但我不知道它是否仅用于缓存驱动程序或会话处理程序。

【问题讨论】:

    标签: php session laravel laravel-4 memcached


    【解决方案1】:

    是的,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 容器中获取您的缓存驱动程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-08
      • 2014-03-10
      • 2015-03-25
      • 2013-06-08
      • 1970-01-01
      • 2015-06-26
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多